heh i w takich skryptach rowniez zdarzaja sie blady - do bazy lacze sie bez problemu z poziomu linux-a - moge edytowac, dodawac, usowac (czyli tabela baza jest OK) - ale z poziomu php nie zapisuje mi pliku, wlasnie to dziwne ze apache w logach nic nie wywala - moj kod:
plik1.html<form method="POST" enctype="multipart/form-data" action="upload.php"> <input type="hidden" name="ok" value="1"> <input type="hidden" name="MAX_FILE_SIZE" value="665600">
<h2 align="center">Upload plikow do bazy
</h2> <table border="1" cellpadding="4" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="65%" height="57"> <td width="39%" height="21">Wybierz plik
</td> <td width="61%" height="21"><input type="file" name="plik" size="40"></td>
<td width="100%" height="19" colspan="2"> <input type="submit" value="Wyslij" style="float: right"></td>
upload.php:<?php
include("config.php");
if (!$link) die ("<p align="center
"><b>Nie mozna sie polaczyc z serwerem MySQL!</b></p>"); @mysql_select_db($baza, $link) or
die ("<p align="center
"><b>Nie mozna sie polaczyc z baza!<br /></b></p>"); $katalog = "pliki/";
if($HTTP_POST_VARS['ok'] == 1)
{
if($HTTP_POST_FILES['plik']['size'] < 665600 || $HTTP_POST_FILES['plik']['size'] != 0)
{
{
$HTTP_POST_FILES['plik']['name'] = strtolower($HTTP_POST_FILES['plik']['name']); $HTTP_POST_FILES['plik']['name'] = str_replace(" ", "_", $HTTP_POST_FILES['plik']['name']);
copy($HTTP_POST_FILES['plik']['tmp_name'], $katalog.$HTTP_POST_FILES['plik']['name']); $adres_pliku = $katalog.$HTTP_POST_FILES['plik']['name'];
$uchwyt = fopen($adres_pliku, "r");
$wielkosc = $HTTP_POST_FILES['plik']['size'];
$n_pliku = $HTTP_POST_FILES['plik']['name'];
$typ = $HTTP_POST_FILES['plik']['type'];
$query= "INSERT INTO zalacznik(id,typ,rozmiar,nazwa,dane) VALUES('$typ','$wielkosc','$n_pliku','$tresc')";
}
else
{
}
}
else
{
}
}
?>
Dokladam jeszcze strukture tabeliCREATE TABLE pliki (
id int(5) NOT NULL AUTO_INCREMENT,
typ varchar(30) NOT NULL,
rozmiar int(11) NOT NULL,
nazwa varchar(200) NOT NULL,
dane mediumblob NOT NULL,
PRIMARY KEY (id)
);
Dzieki za pomoc
Jednak w tych skryptach wystawionych na www zdarzaja sie bledy - ja tutaj znalazlem dwa bledy w zapytaniu SQL:
1. Nazwa tabeli jest inna niz nazwa w zapytaniu SQL w kodzie php.
2. Niepotrzebnie wstawil do zapytania nazwe kolumny id - i tutaj sie wykrzaczal
Powinno byc tak:
<?php
$query= "INSERT INTO pliki(typ,rozmiar,nazwa,dane)VALUES('$typ','$wielkosc','$n_pliku','$tresc')";
?>