Warning: imagejpeg(): Unable to access user_pics/CW62JK5_1.jpg in user_pics

thespecialx

Mitglied
Hallo,
ich habe den oben aufgeführen Fehler bekommen als ich von meinem Testserver( auf des es geklappt hat) ein Uploadscript für Bilder auf einen Webserver aufglegt habe.
CHMOD ist auf 777 für diesen Ordner...
er gibt mit exakt den Fehler hier aus:
PHP:
Imagejpeg($zimg, 'user_pics/'.$sid.'_'.$uid.'.jpg', 100);

.
.
.nachdem der Benutzer das Bild hochlädt , wird es vom System nochmal verkleintert und angepasst und anschließend gespeichert, aber irgendwie sagt er mir das er auf diesen ordner nicht zugreifen kann
 
Genau genommen sagt die Fehlermeldung aus, dass auf „user_pics/CW62JK5_1.jpg“ nicht zugegriffen werden kann. Neben fehlenden Rechten zum Zugriff auf den Ordner, kann es auch möglich sein, dass die Datei bereits existiert und die Rechte zum Zugriff auf selbige fehlen.
 
Hi

Ich denke das liegt daran das du das Upload Verzeichnis absolut angeben musst, z.b.

so

Code:
Imagejpeg($zimg, '/home/www/yourserver/html/user_pics/'.$sid.'_'.$uid.'.jpg', 100);

Ich habe auf meiner Seite auch ein Upload Script und das funktioniert wunderbar:
Beispiel hier

Hoffe das hilft und löst das Problem.

Gruss
Florian
 
hab es auch mit dem absoluten Pfad ausprobiert, aber es klappt nicht ...

er gibt mir immer wieder den selben Fehler aus.... hier der Quellcode

PHP:
if ($_FILES['file']==true){
$k=0;
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

if($type != "image/gif" && $type != "image/pjpeg" && $type!="image/x-png") {
$k=1;
$inf=1;
                                                   }
if($size > "3000000") {
$k=1;
$inf=2;
                                                   }

/*ende prüfung*/
If($k=='0') {
  if ((function_exists(imagecreatetruecolor)) && (function_exists(imagecopyresampled))) {
    $gdversion = 2;
}
else {
    $gdversion = 1;
}
if ($type=='image/pjpeg'){
$im = ImageCreateFromJpeg($tempname);
}else if ($type=='image/gif'){
$im = ImageCreateFromgif($tempname);
}else if($type=='image/x-png'){
$im = ImageCreateFromPng($tempname);
}
    if($im){
        $picx = imagesx($im);
        $picy = imagesy($im);
        $picfac = $picx / $picy;
        $picsx = 350;
        $picsy = 230;
        $picsfac = $picsx / $picsy;
        if($picsfac > $picfac){
            if ($gdversion == '1') {
                $zimg = imagecreate($picfac * $picsy, $picsy);
                imagecopyresized($zimg, $im, 0, 0, 0, 0, $picfac * $picsy, $picsy, $picx, $picy);
            }
            else {
                $zimg = imagecreatetruecolor($picfac * $picsy, $picsy);
                imagecopyresampled($zimg, $im, 0, 0, 0, 0, $picfac * $picsy, $picsy, $picx, $picy);
            }
        }
        else{
            if ($gdversion == '1') {
                $zimg = imagecreate($picsx, $picfac * $picsx);
                imagecopyresized($zimg, $im, 0, 0, 0, 0, $picsx, $picsx * $picfac, $picx, $picy);
            }
            else {
                $zimg = imagecreatetruecolor($picsx, $picfac * $picsx);
                imagecopyresampled($zimg, $im, 0, 0, 0, 0, $picsx, $picsx * $picfac, $picx, $picy);
            }
        }
		$sid=CreateID();

        Imagejpeg($zimg, '/home/www/web0/html/user_pics/'.$sid.'_'.$uid.'.jpg', 100);
		$imgname=$sid.'_'.$uid.'.jpg';
        ImageDestroy($im);
        ImageDestroy($zimg);
 
Seit einem Update in PHP 4.4.1 (iirc) und PHP 5.1.2 (iirc), muss die Datei zuerst existieren, bevor man sie mit imagejpeg() beschreiben darf.
Führe also ein touch() mit dem gleichen Dateinamen/Pfad durch, bevor du imagejpeg() ausführst.
 
Zurück