webForumDet fria alternativet

is_uploaded_file

10 svar · 483 visningar · startad av Yossarian

YossarianMedlem sedan aug. 200469 inlägg
#1

Strul med bildupladdning efter en uppdatering av PHP på server.
(register_globals OFF numera)

Vad kan d vara som strular?
Det känns som den inte tolkar bilden som skickas med i formuläret? Utan den hoppar över o skickar med en saknas-bild som vi har som alternativ...

Formuläret går med method="post" o action="<?=$SELF_PHP?>"

<?
if(isset($_POST[add])) {

        if(is_uploaded_file($_POST[file])) {
    		if ($file_size > 205000) {
       		$size = $file_size / 1024;
        	$size = strrev($size);
        	$size = strstr($size,'.');
        	$size = substr($size, 1);
        	$size = strrev($size);
        	$tobig = 1;
        	$error = 1;
		$ending = strrev($file_name);
		$ending = substr($ending, 0, 4);
		$ending = strrev($ending);
    		} else {
		$ending = strrev($file_name);
		$ending = substr($ending, 0, 4);
		$ending = strrev($ending);
      }
		if($ending == ".jpg" || $ending == ".JPG") {
		                                           $picture = 1;
		                                           } else {
		                                           $picture = 0;
		                                           $error = 1;
		                                           }

		                                           }  else {
		                                                   $ending = ".jpg";
                                             }

Översta delen av scriptet....
Sen körs en if-sats (is_uploaded_file)
Där den missar då...o lägger in saknas.jpg

I databasen, hamnar iaf rätt filändelse...

Mer kod, längre ner i detta uploadscript..just in case...

 
if(is_uploaded_file($_POST[file])) {
                     $query = "SELECT a.id as id, b.grupp as gnamn from produkter as a LEFT JOIN grupper as b on (a.g_id = b.id) WHERE a.a_id = '$_POST[a_id]'";
							              $result = mysql_query($query) or die(mysql_error());
							              $rad = mysql_fetch_array($result);
$imagehw = GetImageSize($_FILES[file][tmp_name]);
$quality = "95";
$src_img = imagecreatefromjpeg($_FILES[file][tmp_name]);
$dst_img = imagecreatetruecolor($dest_width,$dest_height);
$src_width = $imagehw[0];
$src_height = $imagehw[1];
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height);
imagejpeg($dst_img,"./webshoppics/" .$rad["id"] .$ending, $quality);
imagedestroy($src_img);
imagedestroy($dst_img);

$imagehw = GetImageSize($_FILES[file][tmp_name]);
$quality = "95";
$src_img = imagecreatefromjpeg($_FILES[file][tmp_name]);
$dst_img = imagecreatetruecolor($dest_width_thumb,$dest_height_thumb);
$src_width = $imagehw[0];
$src_height = $imagehw[1];
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width_thumb, $dest_height_thumb, $src_width, $src_height);
imagejpeg($dst_img,"./webshoppics/thumbs/" .$rad["id"] .$ending, $quality);
imagedestroy($src_img);
imagedestroy($dst_img);

														                              } else {
							              $query = "SELECT a.id as id, b.grupp as gnamn from produkter as a LEFT JOIN grupper as b on (a.g_id = b.id) WHERE a.namn = '$_POST[namn]'";
							              $result = mysql_query($query) or die(mysql_error());
							              $rad = mysql_fetch_array($result);
														copy("saknas.jpg","./webshoppics/" .$rad["id"] .$ending);
                            copy("saknas2.jpg","./webshoppics/thumbs/" .$rad["id"] .$ending);
                            }
Kent.JMedlem sedan aug. 2001153 inlägg
#2

Har du glömt bort "enctype="multipart/form-data" i form?

Bara en gissning, inte titta på koden ;)

YossarianMedlem sedan aug. 200469 inlägg
#3

Näe, det ligger med...

pettssonMedlem sedan jan. 20021 122 inlägg
#4

Du har $_POST[file], vet inte om det fungerar, men man bör använda $_FILES[namn-på-file-fältet]. Läs mer här. Sedan borde du inte använda copy() för att flytta på temp-filen, kolla på move_uploaded_file() istället.

YossarianMedlem sedan aug. 200469 inlägg
#5

näe, vet....hade ju inte $_POST[file] innan. men vi uppdaterade servern här....så av bara farten ändrade jag den delen, eftersom jag inte skrivit scriptet själv. tror med det är den ändringen som strular... ska läsa vidare o testa mer..

tack så länge.

pettssonMedlem sedan jan. 20021 122 inlägg
#6

Har provat lite, $_POST[] innehåller inte en medskickad fil.

YossarianMedlem sedan aug. 200469 inlägg
#7

mm, det strular fortfarande :(
ändrade tillbaka till originalet o läst lite. men får väl läsa mer...

körde (is_uploaded_file($file)) innan...

pettssonMedlem sedan jan. 20021 122 inlägg
#8
$myFile = file($_FILES[file][tmp_name]);
if(!is_uploaded_file($myFile)) {
 // FEL! bryt
}
else {
 // Gör bildhantering
}
YossarianMedlem sedan aug. 200469 inlägg
#9

ser bra ut...men funkade inte heller...
den hoppar över o lägger till "saknas-bild" istället.
jag får nog ta mer kaffe o kika mer i koden...*suck*...

eller kan jag kanske mejla dig filen? om du har tid?

pettssonMedlem sedan jan. 20021 122 inlägg
#10

Ojdå, om man gör rätt kan det funka bättre... :r Byt ut $_FILES[file][tmp_name] mot $_FILES["file"]["tmp_name"]. Där "file" är namnet på input-fältet.

YossarianMedlem sedan aug. 200469 inlägg
#11

Tyvärr, men dubbelfnuttar gjorde inte susen...
Jag blir snart blind av allt felsökande :)
Ajja, man lär sig...av misstagen. Om man väl får till det sen vill säga...*klurar*...

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)