Problem mit Fileupload (speichert Files nicht)

shadow2

Grünschnabel
Hallo,

ein Kollege von mir hat mal dieses Script versucht, geht auch aber leider speichert es die Bilder nicht ab.

Leider ist er jetzt eine Woche im Urlaub, möchte aber jetz schon gerne, das das Script funktioniert :)

Am besten ich poste mal hier den Quellcode:
file.php (Ausgabe)
PHP:
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<?php
$sites = array(
'home' => 'index.php',
'upload' => 'index.php',
'extras' => 'extras.php',
'faq' => 'faq.php',
'kontakt' => 'kontakt.php',
'imprint' => 'imprint.php',
'terms' => 'terms.php',
'file' => 'file.php',
'upload' => 'upload.php'
);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PicFrame &raquo; Imagesharing &raquo; Bildausgabe</title>
<link rel="shortcut icon" href="favicon.ico"> 
<style type="text/css">
<!--
body,td,th {
	color: #000000;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
}
body {
	background-color: #FFFFFF;
	margin-top: 0px;
}
.head {
	height: 154px;
	width: 444px;
	margin: 0 auto;
	text-align: center;
	}
.navi {
	width: auto;
	height: 33px;
	background-image: url(Bilder/frame_04.gif);
	background-repeat: repeat-x;
	margin: 0 auto;
	text-align: center;
}
.upload {
	margin: 0 auto;
	padding-top: 9px;
	padding-right: 5px;
	text-align: center;
	width: 415px;
	height: 60px;
	background-image: url(Bilder/upload_17.gif);
	background-repeat: no-repeat;
}
.ausgabe {
	margin: 0 auto;
	text-align: center;
	width: auto;
	height: auto;
}
.filetypes {
	width: auto;
	height: auto;
	margin: 0 auto;
	text-align: center;
}
.copyright {
	width: auto;
	height: auto;
	margin: 0 auto;
	text-align: center;
}
.Stil1 {
	color: #37C1FF;
	font-weight: bold;
}
.Stil2 {
	color: #3BC2FF;
	font-weight: bold;
}
-->
</style></head>

<body>
<!-- Header start -->
	<div class="head">
		<a href="http://securedshare.net/picframe/"><img src="Bilder/frame_02.gif" alt="header" width="444" height="154" border="0" /></a> </div>
<!-- Header ende -->
<!-- Navi start -->
	<div class="navi">
		<img src="Bilder/frame_06.gif" alt="home" /><img src="Bilder/frame_07.gif" alt="upload" /><img src="Bilder/frame_08.gif" 			alt="extras" /><img src="Bilder/frame_09.gif" alt="faq" /><img src="Bilder/frame_10.gif" alt="kontakt" /><img src="Bilder/frame_11.gif" alt="bookmark" /><img src="Bilder/frame_12.gif" alt="imprint" />
	</div>
<!-- Navi ende -->
<br /><br/ ><br />
<!-- Ausgabe start -->
	<div class="ausgabe">
	<?php
$tempname = upload; 
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 
$endung_array = explode("/",$_FILES["file"]["type"]); 
if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg" && $type != "image/png" && $type != "image/tif" && $type != "image/tiff" && $type != "image/bmp" && $type != "image/psd" && $type != "image/raw" && $type != "image/pct") { 
    $err[] = "Deine Datei entspricht nicht den von uns vorgegebenen Dateitypen, bitte versuche es mit einer anderen Datei."; 
} 
if($size > "5242880") { 
    $err[] = "Die Datei die du hochladen möchtest, ist zu groß!<br>Maximale Dateigröße beträgt 5 MB!"; 
}  
if(empty($err)) {
$neu = md5($tempname);
$endung = $endung_array[1];
$neufile = $neu.".".$endung;
copy("$tempname", $neufile);
$PicPathIn="./picframe/temp/";
$PicPathOut="./picframe/image/";

// Orginalbild
$bild="$neufile";

// Bilddaten ermitteln
$size= GetImageSize("$PicPathIn"."$neufile");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
// GIF
$altesBild= imagecreatefromgif("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 imageGIF($neuesBild,"$PicPathOut"."TN"."$neufile");
}

if($size[2]==2) {
// JPG
$altesBild= ImageCreateFromJPEG("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImageJPEG($neuesBild,"$PicPathOut"."TN"."$neufile");
}

if($size[2]==3) {
// PNG
$altesBild= ImageCreateFromPNG("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImagePNG($neuesBild,"$PicPathOut"."TN"."$neufile");
}
$Thumbnail=$PicPathOut."TN".$neufile;
echo '<img src="http://securedshare.net/picframe/TN'.$neufile.'">';
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\"><br />";
echo "Die Datei '$name' wurde erfolgreich hochgeladen!<br /><br />";
echo 'Direktlink: <br /><input name="url" type="text" size="85" maxlength="500" value="http://securedshare.net/picframe/'.$neufile.'" readonly ></input><br/><br />';
echo 'BBCode (f&uuml;r Foren): <br /><input name="url" type="text" size="85" maxlength="500" value="[ img]http://securedshare.net/picframe/'.$neufile.'[ /img]" readonly ></input><br/>';
echo 'Thumbnail f&uuml;r verkleinerte Anzeige:<br /><input name="url" type="text" size="85" maxlength="500" value="http://securedshare.net/picframe/TN'.$neufile.'" readonly ></input><br/>';
}
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
} 
?></td>
      </tr>
    </table> </div>
<!-- Ausgabe ende -->
<br /><br /><br /><br />
<!-- Copyright start -->
	<div class="copyright">
		<p><span class="Stil1">PicFrame</span> &copy; by Ben Dobos & Florian Lafay<br/>
  &Auml;u&szlig;erliche Gestaltung und Code &copy; by Ben Dobos<br />
  <span class="Stil1">Terms of use</span> </p>
</div>
</body>
</html>

upload.php (Uploadscript)
PHP:
<style type="text/css">
<!--
.ausgabe {
	margin: 0 auto;
	text-align: center;
	width: auto;
	height: auto;
}
-->
</style>
<?php 
$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 
$endung_array = explode("/",$_FILES["file"]["type"]); 
if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg" && $type != "image/png" && $type != "image/tif" && $type != "image/tiff" && $type != "image/bmp" && $type != "image/psd" && $type != "image/raw" && $type != "image/pct") { 
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
} 
if($size > "5242880") { 
    $err[] = "Die Datei die du hochladen möchtest, ist zu groß! <br>Die maximale Dateigröße beträgt 5 MB!<br />
Nochmal versuchen? <a href="javascript:history.back();"><b>Zurück</b></a>"; 
}  
if(empty($err)) {
$neu = md5($tempname);
$endung = $endung_array[1];
$neufile = $neu.".".$endung;
copy("$tempname", $neufile);
$PicPathIn="./picframe/temp/";
$PicPathOut="./picframe/image/";

// Orginalbild
$bild="$neufile";

// Bilddaten ermitteln
$size= GetImageSize("$PicPathIn"."$neufile");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
// GIF
$altesBild= imagecreatefromgif("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 imageGIF($neuesBild,"$PicPathOut"."TN"."$neufile");
}

if($size[2]==2) {
// JPG
$altesBild= ImageCreateFromJPEG("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImageJPEG($neuesBild,"$PicPathOut"."TN"."$neufile");
}

if($size[2]==3) {
// PNG
$altesBild= ImageCreateFromPNG("$PicPathIn"."$neufile");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImagePNG($neuesBild,"$PicPathOut"."TN"."$neufile");
}
$Thumbnail=$PicPathOut."TN".$neufile;
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\"><br />";
echo "Die Datei '$name' wurde erfolgreich hochgeladen!<br /><br />";
echo 'Direktlink: <br /><input name="url" type="text" size="85" maxlength="500" value="http://kwisi.kw.ohost.de/breen/'.$neufile.'" readonly ></input><br/><br />';
echo 'BBCode (für Foren): <br /><input name="url" type="text" size="85" maxlength="500" value="[ img]http://kwisi.kw.ohost.de/breen/'.$neufile.'[ /img]" readonly ></input><br/>';
echo 'Thumbnail für verkleinerte Anzeige:<br /><input name="url" type="text" size="85" maxlength="500" value="http://kwisi.kw.ohost.de/breen/TN'.$neufile.'" readonly ></input><br/>';
}
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
} 
?>

Die Ordner temp und image haben CHMOD 777.

Bitte um Hilfe, weiß echt nicht weiter oder wo das Problem liegt.
 
Hallo,

ich hab leider keine Ahnung von PHP :(

Ich finde die genannte Funktion "error_reporing" die du in deinem Post geschrieben hast, in beiden Dokumenten nicht :( (Laut Suche STRG+F)

Könntest du mir vielleicht die Stellen ändern, die falsch sind und den Quelltext posten?

Wäre wirklich nett :)

Viele Grüße,
Shadow
 
Sorry, ich hatte einen Schreibfehler :rolleyes:
Du stellst einfach das hier an den Scriptanfang:
PHP:
error_reporting(E_ALL);

Das zeigt alle Fehler (auch Notizen) an. Im laufenden Betrieb sollte error_reporting aber wieder abgeschaltet werden.
 
Ich kann im Code jetzt nicht das Formular finden. Hat dieses das Attribut enctype mit dem Wert multipart/form-data?
Also z.B. so:
HTML:
<form method="post" action="meinuploadscript.php" enctype="multipart/form-data">
 
Hallo also hier ist mal der "Form" Teil:
HTML:
<!-- Upload start -->
	<div class="upload">
	<form enctype="multipart/form-data" action="file.php" method="post"> 
  <p>
  <input type="file" name="file">
  <input type="submit" value="Hochladen!">
</p>
	</div>
<!-- Upload ende -->
 
Zuletzt bearbeitet:
Jetzt mal ohne deinen Quelltext gelesen zu haben.

Kann es sein das auf deinem Webserver die Verwaltungssoftware "Confixx" läuft?

Wenn ja hat das den Hintergrund, dass bei Confixx per default der PHP-Upload ausgeschaltet ist. Das müsste dir dein Provider explizit frei schalten. Dein PHP-Script gibt dann auch keinen Fehler aus, da es diesen nicht erkennen kann wenn PHP-Upload ausgeschaltet ist.
Sollte der Server (mit Confixx) dir selbst gehören dann log dich unter dem passenden Reseller ein und ändere die Leistungen des Kunden wo es nicht geht.

Ist kein Confixx auf der Kiste solltest du trotzdem mal mit deinem Provider darüber sprechen - Hinweis: PHP-Upload aktiv oder deaktiv!

Ich habe mich auch schon mal grün gesucht in einem Script - auf dem einen Server ging es auf dem anderen nicht - bis ich (von selbst) darauf gekommen bin das es am PHP-Upload liegen könnte.
 
Hi,

auf dem Server läuft Plesk 8.

Aber mal sehen vllt liegt es daran (*hoff*) :)

Danke für deine Antwort, daran hab ich gar nicht gedacht ;)

Edit:
Leider liegt es daran wohl nicht, file uploads sind erlaubt (ON)

Hier mal ein Link zur PHPInfo:
*Klick*
 
Zuletzt bearbeitet:
Schau trotzdem mal in der Admin bzw. Res-Config von Plesk nach (ist ja der gleiche Hersteller).
Übrigends zeigt beim mir die PHP-Info trotz deaktiviertem PHP-Upload auch ON an - aber nur bei einigen meiner Server.
 
Zurück