Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z uploadem - serwer czy skrypt?
Forum PHP.pl > Forum > PHP
Halva
Mam formularz który uploduje 6 plików na serwer:
  1. <form method="POST" enctype="multipart/form-data" action="krok_3.1.php">
  2. <input type="hidden" name="ok" value="1" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="52428800" />
  4. <input type="file" name="plik1" /><br />
  5. <input type="file" name="plik2" /><br />
  6. <input type="file" name="plik3" /><br />
  7. <input type="file" name="plik4" /><br />
  8. <input type="file" name="plik5" /><br />
  9. <input type="file" name="plik6" /><br />
  10.  
  11. <input type="image" SRC="grafika/wyslij.jpg" />
  12. </form>


A na stronie krok_3.1.php skrypt który obsługuje przesłane pliki:
  1. <?
  2. $znacznik_przeslania=1;
  3. for ($i = 1; $i <= 6; $i++) {
  4. $numerpliku="plik".$i;
  5.  
  6. if($HTTP_POST_VARS['ok'] == 1){
  7. if($HTTP_POST_FILES[$numerpliku]['size'] < 52428800 && $HTTP_POST_FILES[$numerpliku]['size'] != 0){
  8. if(is_uploaded_file($HTTP_POST_FILES[$numerpliku]['tmp_name'])){
  9.  
  10.  
  11.  
  12.  
  13.  
  14. move_uploaded_file($HTTP_POST_FILES[$numerpliku]['tmp_name'], "dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name']); 
  15. chmod("dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'], 0777);
  16. chown("dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'], "fotolucz");
  17.  
  18. /* zmiana nazwy pliku na nazwe bez polskich znakow diaktrycznych */
  19.  
  20. $plik_przed="dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'];
  21.  
  22. $plik_tmp=str_replace ( array ( "ń", "Ń", "ą", "Ą", "ć", "Ć", "ę", "Ę", "ł", "Ł", "ó" , "Ó", "ś", "Ś", "ź", "Ź", "ż", "Ż", " " ,"%", "@", "^", "#", "$", "&") , array ( "n" , "N", "a", "A", "c", "C", "e", "E", "l", "L", "o", "O", "s", "S", "z", "Z", "z", "Z", "_", "_", "_", "_", "_", "_", "_") , $HTTP_POST_FILES[$numerpliku]['name'] ); 
  23.  
  24. $plik_po="dane/zlecenia/$zlecenie/".$plik_tmp;
  25.  
  26. rename($plik_przed, $plik_po);
  27.  
  28.  
  29. /* ====================POBIRANIE ROZSZERZENIA PLIKU====================== */
  30.  
  31. $pos=strrpos($plik_po, ".");
  32. $file_post=substr($plik_po, 0, $pos);
  33. $file_copy_front=substr($plik_po, 0, $pos);
  34. $file_copy_end=substr($plik_po, $pos);
  35.  
  36. /* ====================================================================== */
  37.  
  38.  
  39. /* ==TWORZENIE MINIATURY DO WYSWIETLENIA NA STRONIE DLA UZYTKOWNIKA=== */
  40.  
  41. if ($file_copy_end==".jpg" OR $file_copy_end==".JPG") {
  42.  
  43.  
  44. $img = imagecreatefromjpeg("dane/zlecenia/$zlecenie/".$plik_tmp);
  45. $width = imagesx($img);
  46. $height = imagesy($img);
  47. $width_mini = $width * 0.1;
  48. $height_mini = $height * 0.1;
  49. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  50. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  51. imagejpeg($img_mini, "dane/zlecenia/$zlecenie/mini/".$plik_tmp, 80);
  52. imagedestroy($img);
  53. imagedestroy($img_mini);
  54.  
  55. } elseif ( $file_copy_end==".tiff" OR $file_copy_end==".TIFF" OR $file_copy_end==".bmp" OR $file_copy_end==".BMP" OR $file_copy_end==".TIF" OR $file_copy_end==".tif") {
  56.  
  57.  $plik_przed_kop="dane/inne_formaty/inny.jpg";
  58. $plik_po_kop="dane/zlecenia/$zlecenie/mini/inny.jpg";
  59.  
  60. copy($plik_przed_kop, $plik_po_kop);
  61. chmod($plik_po_kop, 0777);
  62. chown($plik_po_kop, "fotolucz");
  63.  
  64. $pos=strrpos($file_copy_front, "/");
  65. $file_post=substr($file_copy_front, 0, $pos);
  66. $file_copy_front_I=substr($file_copy_front, 0, $pos);
  67. $pos++;
  68. $file_copy_end_I=substr($file_copy_front, $pos);
  69.  
  70. $plik_po_zmianie=$file_copy_front_I."/mini/".$file_copy_end_I.".jpg";
  71. rename($plik_po_kop, $plik_po_zmianie);
  72.  
  73.  
  74.  
  75. } else { 
  76. unlink ($plik_po);
  77. echo"<span class='tekst_kom'>Plik <strong>".$plik_tmp." nie zostal zapisany</strong> poniewaz nie jest plikiem zdjeciowym!</span><br />";
  78. $znacznik_przeslania=0;
  79. }
  80.  
  81.  
  82. /* ===================================================================== */
  83.  
  84. }
  85. }else{
  86.  
  87. }
  88. }
  89. }
  90. if ($znacznik_przeslania==0) {echo "<span class='tekst_kom'>Obslugiwane formaty plikow to <strong>JPG, BMP, TIFF</strong>.</span><br /><br />";} else {}
  91.  
  92. echo"<span class='tekst_kom'>
  93.  
  94. Jeżeli chcesz dodać kolejne zdjęcia użyj powyższych formularzy.<br />
  95. Jeżeli dodałeś/dodałaś już wszystkie zdjęcia kliknij w przycisk DALEJ<br />
  96. aby ustalić ilość odbitek.
  97. </span>"; 
  98.  
  99. echo'<br /><br /><span class="tekst"><strong>Dotychczas przesłane pliki:</strong></span>';
  100. /* #################### Sprawdzanie zawartości katalogu i wypisywanie go. #######
    ################## */
  101. echo '<br />';
  102. if ($handle = opendir("dane/zlecenia/$zlecenie/mini/")) {
  103.  while (false !== ($file = readdir($handle))) { 
  104.  if ($file != "." && $file != ".." && $file != "%.txt") { 
  105.  $plik="dane/zlecenia/$zlecenie/mini/".$file;
  106.  $plik_link="dane/zlecenia/$zlecenie/".$file;
  107.  echo ("<div id='ramka_3_1'><a href='$plik_link' target='_blank' class='link_do_pliku'><img src='".$plik."' width='70' height='55' class='link_do_pliku' /><br />".$file."</a></div>");
  108.  } 
  109.  }
  110.  closedir($handle); 
  111. }
  112.  
  113. ?>


Problem polega na tym, że serwer nie chce przyjąć plików większych niż 2MB. Zła konfiguracja serwera czy błąd w skrypcie? Hostin na livenet.pl. Człowiek, który obsługuje serwer nie wie co jest problemem, najciekawsze jest to że ten skrypt działał sprawnie ponad 1,5 roku i ostatnio przestał. Firma hostingowa zmieniała serwery i OS.
max_memory jest zmienoione na 50 MB, max_upload_size i max_post_size tez. Taką informację podał mi operator serwera.
PHP obsługiwane jest jako CGI.
franki01
Zobacz jakie wartosci zwiazane z uploadem zwraca phpinfo" title="Zobacz w manualu PHP" target="_manual i czy na pewno te limity dot. wielkosci wysylanych plikow sa wystarczajace. Jezeli nie zmieniales skryptu, a dzialal to pewnie jest to wina serwera. Jak cos bedzie za malo to stworz .htaccess i w nim wpisz:

Kod
RewriteEngine On

php_value upload_max_filesize 50M
php_value memory_limit 50M


Powinno pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.