webForumDet fria alternativet

Problem med bilduppladdning.

10 svar · 775 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Jag håller på med att script som (ska) skapa en miniatyr av en bild vid uppladdning, men det fungerar inte riktigt.

if (isset($_POST['submit'])){

	$imagename = $_POST['title'];
	$imagename = str_replace(" ","-", $imagename);
	$imagename = substr($imagename, 0, 200);
	$imagename = $imagename.".jpg";
	$imagename = strtolower($imagename); 

	if($_FILES['releaseimage']['size'] == 0){
		$error = 'Please select an image';
		array_push($output[0],$error);
	}
	if($_FILES['releaseimage']['type'] == "image/gif" || $_FILES['releaseimage']['type'] == "image/jpg" || $_FILES['releaseimage']['type'] == "image/jpeg" || $_FILES['releaseimage']['type'] == "image/pjpeg" || $_FILES['releaseimage']['type'] == "image/png") {
		
	} else {
		$error = 'Image must be a JPEG, JPG, GIF, or PNG.';
		array_push($output[0],$error);
	}
	if(count($output[0])){
		$error = new Error();
		$msg = $error->buildError($output[0]);
	}else{
		$image = new Gregphoto_Image($_FILES['releaseimage']['tmp_name']);
		$image->setMaxHeight(75);
		$image->setMaxWidth(75);
		$image->setJpegQuality(90);
		$image->setOutputType(IMAGETYPE_JPEG);
		$image->resize(Gregphoto_Image::BEST_FIT);
		$image->saveThumbnail(UPLOADSPATH.'/releases/thumbs/'.$imagename);
		$image = new Gregphoto_Image($_FILES['releaseimage']['tmp_name']);
		$image->setMaxHeight(200);
		$image->setMaxWidth(200);
		$image->setJpegQuality(90);
		$image->setOutputType(IMAGETYPE_JPEG);
		$image->resize(Gregphoto_Image::BEST_FIT);
		$image->saveThumbnail(UPLOADSPATH.'/releases/'.$imagename);

Alla info från formuläret sparas utan problem i mysql, men ingen bild sparas i mappen "releases" eller "releases/thumbs". :(
Har dubbelkollat så att alla sökvägar är korrekta.

(Bifogar klassen som skapar bilden.)

effataMedlem sedan apr. 2008137 inlägg
#2

Vad händer när du försöker? Vad använder du för bild och hur stor är den? Har du kollat i errorloggen om scriptet crashar eller dylikt?
Anledningen att jag frågar är att GDLib kräver galet mycket minne när man jobbar med PNG, och kan därför väldigt lätt orsaka out of memory exceptions.

Detta är det troligaste felet om du bara får en blank sida när du försöker köra. Annars skulle det vara väldigt bra om du kunde slå på error_reporting(E_ALL) och skriva vad du får för typ av fel. Jag ser inget uppenbart fel i din kod.

GuldstrandMedlem sedan juli 20041 271 inlägg
#3

Jag har försökt med ett par mindre .jpg bilder.
Sidan laddar om och sparar all info precis som den ska, enda problemet är att inga bilder sparas på servern.

effataMedlem sedan apr. 2008137 inlägg
#4

Har du skrivrättigheter i katalogerna? Kan du validera att filen laddas upp ordentligt, dvs finns tmp_name? Vad händer om du använder move_uploaded_file för att flytta den uppladdade filen till en av katalogerna du vill lägga filer i?

GuldstrandMedlem sedan juli 20041 271 inlägg
#5

effata skrev:

Har du skrivrättigheter i katalogerna? Kan du validera att filen laddas upp ordentligt, dvs finns tmp_name? Vad händer om du använder move_uploaded_file för att flytta den uppladdade filen till en av katalogerna du vill lägga filer i?

Ja, jag har satt rättigheterna till 777 på båda mapparna.
"tmp_name" finns.

GuldstrandMedlem sedan juli 20041 271 inlägg
#6

*bump*

gernbergMedlem sedan feb. 20099 inlägg
#7

Kontrollera följande:

  1. Får du något felmeddelande (med error_reporting(E_ALL) som effata skrev)
  2. Är du säker på att UPLOADSPATH är korrekt? prova att skriva ut den med echo
  3. Som effata skriver, fungerar move_uploaded_file($_FILES['releaseimage']['tmp_name'], UPLOADSPATH.'/releases/'.$imagename)
  4. Hur ser formuläret ut, det skall innehåller enctype='multipart/form-data' i början. (<form enctyp....)
  5. Har du php_gd installerat och aktiverat?
GuldstrandMedlem sedan juli 20041 271 inlägg
#8

1. Nej, inga felmeddelanden genereras.
2. Ja, är 110% säker på att alla sökvägar är korrekta.
3. Ja, det fungerar.
4. "enctype='multipart/form-data'" finns i form-taggen.
5. Ja, gd2 finns installerat och är "aktiverat".

Kan det vara något knas i klassen som inkluderas?

GuldstrandMedlem sedan juli 20041 271 inlägg
#9

Är tacksam för all hjälp jag kan få.

gernbergMedlem sedan feb. 20099 inlägg
#10

Hur stora filer försöker du ladda upp?

Kolla (i php.ini):
max_upload_size
max_post_size

De kan heta något annorlunda, så försök söka på max i php.ini filen.

GuldstrandMedlem sedan juli 20041 271 inlägg
#11

gernberg skrev:

Hur stora filer försöker du ladda upp?

Kolla (i php.ini):
max_upload_size
max_post_size

De kan heta något annorlunda, så försök söka på max i php.ini filen.

Det är inga problem eller fel med serverns inställningar.
Har inga problem med andra skript för filuppladdning.

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