korzystam z gotowego rozwiązania uploadu plików na serwer -> http://www.phpletter.com/Our-Projects/AjaxFileUpload/
Niestety to rozwiązanie nie działa dokońca na serwerze OVH.
Gdy przesyłam plik o wadze <15MB wszystko działa prawidłowo i plik zostaje przesłany na serwer.
Problem jednak pojawia się gdy chcę przesłać większy plik np.: 30MB. Wtedy pojawia się błąd HTTP 500, a w logach serwera odczytuje:
[Tue Feb 01 19:13:29 2011] [error] [client 178.42.155.252] [host www.mojadomena.pl] Premature end of script headers: doajaxfileupload.php, referer: <a href="http://www.mojadomena.pl" target="_blank">http://www.mojadomena.pl</a>
Podaję kod pliku php który powoduje błąd:
<?php $error = ""; $msg = ""; $fileElementName = 'fileToUpload'; { switch($_FILES[$fileElementName]['error']) { case '1': $error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini'; break; case '2': $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; break; case '3': $error = 'The uploaded file was only partially uploaded'; break; case '4': $error = 'No file was uploaded.'; break; case '6': $error = 'Missing a temporary folder'; break; case '7': $error = 'Failed to write file to disk'; break; case '8': $error = 'File upload stopped by extension'; break; case '999': default: $error = 'No error code avaiable'; } }elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none') { $error = 'No file was uploaded..'; }else { $msg .= " File Name: " . $_FILES['fileToUpload']['name'] . ", "; //for security reason, we force to remove all uploaded file $targetPath = $_SERVER['DOCUMENT_ROOT'] . '/downloads/files/' . $_FILES['fileToUpload']['name']; $tempFile = $_FILES['fileToUpload']['tmp_name']; //@unlink($_FILES['fileToUpload']); $msg .= 'Plik został wysłany'; } else { $msg .= 'Nie udało się wysłać pliku'; } } ?>
Takie rozwiązanie działa na innym serwerze bez problemu.
Podaje niektóre parametry serwera na OVH:
-PHP Version 5.2.17
-post_max_size 64M
-upload_max_filesize 64M
Dziwne jest też to że wcześniej wysyłałem pliki na OVH bez problemu nawet te duże, ale nagle przestało działać, a nic nie zmieniałem. Pisałem do administracji OVH ale umywają ręce, sądząc że wina leży po mojej stronie.