[PHP] Problem z uploadem - serwer czy skrypt?

0

Mam formularz który uploduje 6 plików na serwer:

<form method="POST" enctype="multipart/form-data" action="krok_3.1.php">
    <input type="hidden" name="ok" value="1" />
    <input type="hidden" name="MAX_FILE_SIZE" value="52428800" />
    <input type="file" name="plik1" /><br />
    <input type="file" name="plik2" /><br />
    <input type="file" name="plik3" /><br />
    <input type="file" name="plik4" /><br />
    <input type="file" name="plik5" /><br />
    <input type="file" name="plik6" /><br />

    	<input type="image" SRC="grafika/wyslij.jpg" />
</form>

A na stronie krok_3.1.php skrypt który obsługuje przesłane pliki:

<?
$znacznik_przeslania=1;
for ($i = 1; $i <= 6; $i++) {
$numerpliku="plik".$i;

if($HTTP_POST_VARS['ok'] == 1){
if($HTTP_POST_FILES[$numerpliku]['size'] < 52428800 && $HTTP_POST_FILES[$numerpliku]['size'] != 0){
if(is_uploaded_file($HTTP_POST_FILES[$numerpliku]['tmp_name'])){





move_uploaded_file($HTTP_POST_FILES[$numerpliku]['tmp_name'], "dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name']); 
chmod("dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'], 0777);
chown("dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'], "fotolucz");

/* zmiana nazwy pliku na nazwe bez polskich znakow diaktrycznych */

$plik_przed="dane/zlecenia/$zlecenie/".$HTTP_POST_FILES[$numerpliku]['name'];

$plik_tmp=str_replace ( array ( "&#324;", "&#323;", "&#261;", "&#260;", "&#263;", "&#262;", "&#281;", "&#280;", "&#322;", "&#321;", "ó" , "Ó", "&#347;", "&#346;", "&#378;", "&#377;", "&#380;", "&#379;", " " ,"%", "@", "^", "#", "$", "&") , array ( "n" , "N", "a", "A", "c", "C", "e", "E", "l", "L", "o", "O", "s", "S", "z", "Z", "z", "Z", "_", "_", "_", "_", "_", "_", "_")  , $HTTP_POST_FILES[$numerpliku]['name'] ); 

$plik_po="dane/zlecenia/$zlecenie/".$plik_tmp;

rename($plik_przed, $plik_po);


/* ====================POBIRANIE ROZSZERZENIA PLIKU====================== */

$pos=strrpos($plik_po, ".");
$file_post=substr($plik_po, 0, $pos);  
$file_copy_front=substr($plik_po, 0, $pos);
$file_copy_end=substr($plik_po, $pos);

/* ====================================================================== */


/* ==TWORZENIE MINIATURY DO WYSWIETLENIA NA STRONIE DLA UZYTKOWNIKA=== */

if ($file_copy_end==".jpg" OR $file_copy_end==".JPG") {


	$img = imagecreatefromjpeg("dane/zlecenia/$zlecenie/".$plik_tmp);
	$width  = imagesx($img);
	$height = imagesy($img);
	$width_mini = $width * 0.1;
	$height_mini = $height * 0.1;
	$img_mini = imagecreatetruecolor($width_mini, $height_mini);
	imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
	imagejpeg($img_mini, "dane/zlecenia/$zlecenie/mini/".$plik_tmp, 80);
	imagedestroy($img);
	imagedestroy($img_mini);

} 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") {

 	$plik_przed_kop="dane/inne_formaty/inny.jpg";
	$plik_po_kop="dane/zlecenia/$zlecenie/mini/inny.jpg";
		 
	copy($plik_przed_kop, $plik_po_kop);
	chmod($plik_po_kop, 0777);
	chown($plik_po_kop, "fotolucz");
	
	$pos=strrpos($file_copy_front, "/");
	$file_post=substr($file_copy_front, 0, $pos);  
	$file_copy_front_I=substr($file_copy_front, 0, $pos);
	$pos++;
	$file_copy_end_I=substr($file_copy_front, $pos);
	
	$plik_po_zmianie=$file_copy_front_I."/mini/".$file_copy_end_I.".jpg";
	rename($plik_po_kop, $plik_po_zmianie);
	


} else { 
unlink ($plik_po);
echo"<span class='tekst_kom'>Plik <strong>".$plik_tmp." nie zostal zapisany</strong> poniewaz nie jest plikiem zdjeciowym!</span><br />";
$znacznik_przeslania=0;
}


/* ===================================================================== */

}
}else{

}
}
}
if ($znacznik_przeslania==0) {echo "<span class='tekst_kom'>Obslugiwane formaty plikow to <strong>JPG, BMP, TIFF</strong>.</span><br /><br />";} else {}

echo"<span class='tekst_kom'>

Je&#380;eli chcesz doda&#263; kolejne zdj&#281;cia u&#380;yj powy&#380;szych formularzy.<br />
Je&#380;eli doda&#322;e&#347;/doda&#322;a&#347; ju&#380; wszystkie zdj&#281;cia kliknij w przycisk DALEJ<br />
aby ustali&#263; ilo&#347;&#263; odbitek.
</span>"; 

echo'<br /><br /><span class="tekst"><strong>Dotychczas przes&#322;ane pliki:</strong></span>';
/* #################### Sprawdzanie zawartości katalogu i wypisywanie go. ######################### */
echo '<br />';
if ($handle = opendir("dane/zlecenia/$zlecenie/mini/")) {
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != ".." && $file != "%.txt") { 
         $plik="dane/zlecenia/$zlecenie/mini/".$file;
         $plik_link="dane/zlecenia/$zlecenie/".$file;
         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>");
         } 
   }
   closedir($handle); 
}

?>

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.

0

konfiguracja w php.ini. (max_upload_filesize + max_post_size, chyba jeszcze max memory też ma na to wpływ)

0

Memory jest zmienoione na 50 MB, upload i post tez. Taką informację podał mi operator serwera. Czy jest jeszcze jakiś inny czynnik który może na to wpływać?

0

A takie głupie pytanie - jak jest obsługiwane PHP? Jako moduł, czy jako CGI? Jeśli jako moduł, to czy serwer został zreloadowany po zmianie php.ini? Banalne sprawy, ale czasem w tych najbanalniejszych kwestiach leży problem :).

0

PHP obsługiwane jest jako CGI.

0

To tutaj może tkwić problem. Wydaje mi się, że kiedyś coś czytałem o jakichś ograniczeniach trybu CGI względem modułu apache. Jednak nie pomnę, czego dokładnie dotyczyły, spróbuj pod tym kątem zajrzeć do manuala.

1 użytkowników online, w tym zalogowanych: 0, gości: 1