Autor Zpráva
mersi
Profil
Mám takýto problém. Načítavam obrázky z formulára a následne každý z nich chcem uploadovat do dvoch folderov s tym ze v kazdom ich upravujem na určité rozmery.

Problém je v tom ze vzdy mi to funguje iba pre jeden folder. napr. ked uploadnem obrazok a upravim do prveho adresara tak do druheho mi to uz nespravi. A opačne. Cim to je. Tu je ten kod. Nemozem 2x uploadovat jeden $_FILES['userfile'.$i]['name'] ?
Ako to mam zmenit. Prosim poradte

if ( $_FILES['userfile'.$i]['name'] != '' ){
		$uploadfile = $uploaddir_view . basename($_FILES['userfile'.$i]['name']);
		$uploadfile1 = $uploaddir_big . basename($_FILES['userfile'.$i]['name']);
		if (( move_uploaded_file( $_FILES['userfile'.$i]['tmp_name'], $uploadfile )) && 
			( move_uploaded_file( $_FILES['userfile'.$i]['tmp_name'], $uploadfile1 )) ) {
			list( $sirka, $vyska, $typ, $atributy ) = getimagesize( $uploadfile );
			list( $sirka1, $vyska1, $typ1, $atributy1 ) = getimagesize( $uploadfile1 );
			$pomer = $sirka / $vyska;
			$pomer1 = $sirka1 / $vyska1;
			$nova_vyska = $view_size / $pomer;
			$nova_vyska1 = $big_size / $pomer1;
			if ( $vyska > $view_size ){
				ini_set('memory_limit', '100M');
				switch ( $typ )
					{
					case 2: // JPEG
						{
						$image_new = imagecreatetruecolor( $view_size, $nova_vyska );
						$image = imagecreatefromjpeg( $uploadfile );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $view_size, $nova_vyska, $sirka, $vyska );
						imagejpeg( $image_new, $uploadfile );
						}
						break;
		
					case 1: // GIF
						{
						$image_new = imagecreatetruecolor( $view_size, $nova_vyska );
						$image = imagecreatefromgif( $uploadfile );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $view_size, $nova_vyska, $sirka, $vyska );
						imagegif( $image_new, $uploadfile );
						}
						break;
			
					case 3: // PNG
						{
						$image_new = imagecreatetruecolor( $view_size, $nova_vyska );
						$image = imagecreatefrompng( $uploadfile );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $view_size, $nova_vyska, $sirka, $vyska );				imagepng( $image_new, $uploadfile );
						}
						break;
						}
					}

			if ( $vyska1 > $big_size ){
				ini_set('memory_limit', '100M');
				switch ( $typ1 )
					{
					case 2: // JPEG
						{
						$image_new = imagecreatetruecolor( $big_size, $nova_vyska1 );
						$image = imagecreatefromjpeg( $uploadfile1 );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $big_size, $nova_vyska1, $sirka1, $vyska1 );
						imagejpeg( $image_new, $uploadfile1 );
						}
						break;
		
					case 1: // GIF
						{
						$image_new = imagecreatetruecolor( $big_size, $nova_vyska1 );
						$image = imagecreatefromgif( $uploadfile1 );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $big_size, $nova_vyska1, $sirka1, $vyska1 );
						imagegif( $image_new, $uploadfile1 );
						}
						break;
			
					case 3: // PNG
						{
						$image_new = imagecreatetruecolor( $big_size, $nova_vyska1 );
						$image = imagecreatefrompng( $uploadfile1 );
						imagecopyresampled( $image_new, $image, 0, 0, 0, 0, $big_size, $nova_vyska1, $sirka1, $vyska1 );
						imagepng( $image_new, $uploadfile1 );
						}
						break;
						}
				}
			}
		else
			header( 'Location: pridat_ubyt_zar3.php?up_err' );
Alphard
Profil
Funkce move_uploaded_file() přesune požadovaný soubor (poté již není k dispozici na dané adrese). Její první použití nahraďte první copy().
fajzen
Profil
mám taký pocit, že
move_uploaded_file()
skopíruje súbor do zvolenej zložky a potom ho z dočasnej zložky zmaže, takže to druhé
move_uploaded_file()
už nemá čo presúvať... použi namiesto toho
copy()
a ak chceš tak nakoniec
unlink()
pre zmazanie z dočasnej zložky, ale väčšinou to nie je potrebné, pretože garbage collector tieto súbory po skončení behu skriptu zmaže

// neskoro :(
mersi
Profil
dakujem uz to ide

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: