Hej,
Jeg har lavet et script, så jeg kan uploade filer til MySQL i en LONGBLOB.
Uploaden virker fint - jeg kan checke med et tool at f.eks. jpg billeder er
gemt korrekt.
Når jeg så skal download er det kun første del af filen der har det korrekt
indhold. De første ca. 64-128kB ser fine ud, så kommer der en masse garbage
og derefter slutter filen tilsyneladende med korrekte data igen. (set med
diff). Jeg fatter ikke hvad der kan være galt. Jeg bruger følgende kode til
at download'e med:
[code start]
.... do query stuff....
$fileContent = @mysql_result($result, 0, "file_data");
$size = @mysql_result($result, 0, "file_size");
header("Content-type: $fileType");
header("Content-length: $size");
header("Content-disposition: attachment; filename=$filename");
header("Content-Description: PHP Generated Data");
echo $fileContent;
[code end]
filen er uploadet med følgende kode:
[code start]
$tmp = addslashes($_FILES["user_file"]["tmp_name"]);
$fd=fopen($tmp,"rb") or die("Can't open file!");
$fdata=addslashes(fread($fd,filesize($tmp)));
$size=filesize($tmp);
$sql="INSERT INTO file_table (file_data, file_size)".
" VALUES('$file_data','$file_size')";
mysql_query($sql);
[code end]
I den rigtige kode er der flere elementer i tabellen, men det burde være
irelevant her.
Hvis det er et jpg billede kan jeg se starten af billedet i min browser,
hvorefter dekodningen går skævt. Prøver jeg igen, går det igen skævt, men på
en anden måde - dvs. jeg kan muligvis se lidt mere af billedet, eller
'garbage' delen ligner måske noget der burde hvae været med i billedet. Det
er forskelligt fra gang til gang.
Er der nogen der kan hjælpe mig her?
mvh
Michael
|