Temporärer Ordner bei PHP nicht tmp sondern phptmp

Gariel

Mitglied
Hi
Ich habe ein problem, also wenn ich bilder uploaden will auf den Server, dann kommt immer ne fehlermeldung das die datei nicht gefunden werden kann oder so bla bla...

Hab jetzt ma geguckt und der versucht ja die temporäre Datei beim uppen in den "tmp" Ordner vom Server zu laden, aber ich glaube der heist auf dem Server nicht "tmp" sondern "phptmp" so steht es zumindestens in der PHP Info datei.

Weis einer wie ich das im Script ändern kann.

Ich nutze derzeit das script:

PHP:
<?php 
#Template Name wird vergeben
$tempname = $_FILES['file']['tmp_name']; 

	#Name der Datei auf dem Clientrechner
	$name = $_FILES['file']['name']; 
	
		#Typ der Datei
		$type = $_FILES['file']['type']; 
		
			#Größe der Datei
			$size = $_FILES['file']['size']; 
			
			

#Jetzt kommt ob datei zu groß oder kein Bild.
	if($type != "image/gif" && $type != "image/pjpeg") { 
	$err[] = "<br><br><br>nur gif und jpeg Dateien dürfen hochgeladen werden."; 
	} 
		if($size > "500000") { 
		$err[] = "<br><br><br>Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 500 KB!"; 
		} 

#Image Size wird gesucht.
$size = GetImageSize ("$tempname");

#Image Typ bestimmen.
if($size[2] == "1") 
{ 
$imagetyp = gif;
} 

	elseif($size[2] == "2")
	{ 
	$imagetyp = jpg;
	} 

		elseif($size[2] == "3")
		{ 
		$imagetyp = png;
		} 

				else
				{
				$imagetyp = jpeg;
				}


#Hochladen beginnt.
If(empty($err)) { 
		copy("$tempname", "../img/member_pics/$name");
		
#Eintrag in die MYSQL Datei.
$eintrag = "UPDATE members 
SET 
bild_width='$size[0]',
bild_height='$size[1]',
bild='$name'
WHERE identifi='$tirisfal_id'";

mysql_query($eintrag) or die("Error: " . mysql_error()); 

echo "<br><br><br>Dein Bild wurde erfolgreich hochgeladen!"; 
} 

		#WENN ES NICHT KLAPPT!
		else { 
		foreach($err as $error) 
		echo "$error<br>"; 
		} 
		
		
?>

Dann kommt aber der Fehler:

PHP:
Warning: getimagesize() [function.getimagesize]: open_basedir restriction in effect. File(/tmp/phpWWlwki) is not within the allowed path(s): (/usr/local/httpd/htdocs/kunden/web37/) in /usr/local/httpd/htdocs/kunden/web37/html/tirisfal/profil/bild_upload.php on line 25

Warning: getimagesize(/tmp/phpWWlwki) [function.getimagesize]: failed to create stream: Operation not permitted in /usr/local/httpd/htdocs/kunden/web37/html/tirisfal/profil/bild_upload.php on line 25

Warning: copy() [function.copy]: open_basedir restriction in effect. File(/tmp/phpWWlwki) is not within the allowed path(s): (/usr/local/httpd/htdocs/kunden/web37/) in /usr/local/httpd/htdocs/kunden/web37/html/tirisfal/profil/bild_upload.php on line 51
 
Original geschrieben von _voodoo
Einfach einen zusätzlichen Ordner /tmp anlegen ?!
Und was soll das bringen? Meistens liegt der Tmp Ordner außerhalb des Webroots, und da kann man ja keine Ordner selbst anlegen ;)

@Gariel:

Je nach PHP Version würd ich das Bild aus dem Tmp Ordner lieben so verschieben:

PHP:
$blnUpload = move_uploaded_file($tempname,'../img/member_pics/'.$name.'');
if($blnUpload) {
     // upload erfolgreich
} else {
     // upload fehlgeschlagen
}
http://de3.php.net/manual/de/features.file-upload.php

Außerdem muss dein Ordner, in den Du das Bild speichern willst, Schreibrechte besitzen. Diese kannst Du per FTP ändern. Und wenn Du das Bild verschoben hast, dann würd ich erst die Bilddaten auslesen lassen.

Wie der Tmp-Ordner auf dem Server heisst, spielt eigentlich keine Rolle. Der Ordner muss natürlich nur in der Php.ini eingetragen sein. Alternativ kannst Du mittels
PHP:
 ini_set('upload_tmp_dir', 'mein/neuer/tmp/ordner')
den Tmp Ordner zur Script-Laufzeit ändern.
 
HEY JO JO

@ Chino:

VIELEN VIeLEN DAnK ES GeHT JETZT :) VOLLLL geil voll cool...

und jetzt mach ich weiter thx...

mfg Gariel
 

Neue Beiträge

Zurück