diehappy
13.07.2006, 22:48:52
Moin
Sorry das schon wieder ein Thema mit nem Uploadscript kommt. :D
Ich hab hier ein kleines Script das ich mit ein wenig hilfe versucht hab etwas zu verbessern. Sieht auch alles sehr schön aus. Nur funktionierts nicht und ich find den oder die Fehler beim besten willen nicht. Vielleicht kann sich das mal jemand anschauen und ggf. testen.
Es kommen keine Fehlermeldungen, keine Bestätigung das was hochgeladen wurde und es wird nichts hochgeladen. Ich denke/hoffe das Script ist einigermasen übersichtlich.
<?php
ini_set ('error_reporting', E_ALL);
$pfad = 'upload/';
$dateiupload_erfolgreich = false;
function CheckFilename($dateiname,$pfad)
{
global $fehler; $fehler = array();
if (file_exists($pfad.$dateiname)) array_push($fehler, 'Es existiert bereits eine Datei mit dem Namen!');
if(!in_array(strtolower(substr($dateiname,-4)),array('.jpg','jpeg','.png','.gif'))) array_push($fehler, 'Bitte nur Bilder mit der Endung .jpg, .jpeg, .png oder .gif hochladen!');
return (sizeof($fehler)) ? $dateiname : false;
}
function CheckFile($dateiname_temp,$dateifehler,$dateigroesse)
{
global $fehler; $fehler = array();
switch ($dateifehler) {
case '1': $dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break;
case '2': $dateifehler_erklaerung = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break;
case '3': $dateifehler_erklaerung = 'Die Datei wurde nur teilweise hochgeladen.'; break;
case '4': $dateifehler_erklaerung = 'Es wurde keine Datei hochgeladen.'; break;
}
if($dateifehler) array_push($fehler, $dateifehler_erklaerung);
if ($dateigroesse < 1) array_push($fehler, 'Sie haben versucht keine oder eine lehre Datei hochzuladen.');
return (sizeof($fehler)) ? $dateiname_temp : false;
}
if(!empty($_POST['Send']))
{
if ($dateiname = CheckFilename($_FILES['Datei']['name'],$pfad))
{
if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))
{
move_uploaded_file($dateiname_temp, $pfad.$dateiname);
if (filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
$dateiupload_erfolgreich = true;
}
else $fehlermeldungen_ausgeben = true;
}
else $fehlermeldungen_ausgeben = true;
}
?>
<html>
<head>
<title>Datei-Upload</title>
</head>
<body>
<?php
if ($dateiupload_erfolgreich)
{
?>Ihre Datei ("<?php echo $dateiname; ?>") wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php
}
elseif (!empty($fehler))
{
?>
<br>Es sind folgende Fehler aufgetreten:<br>
<?php
foreach ($fehler as $fehlermeldung) {
echo $fehlermeldung.'<br>';
}
?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>
</body>
</html>
Sorry das schon wieder ein Thema mit nem Uploadscript kommt. :D
Ich hab hier ein kleines Script das ich mit ein wenig hilfe versucht hab etwas zu verbessern. Sieht auch alles sehr schön aus. Nur funktionierts nicht und ich find den oder die Fehler beim besten willen nicht. Vielleicht kann sich das mal jemand anschauen und ggf. testen.
Es kommen keine Fehlermeldungen, keine Bestätigung das was hochgeladen wurde und es wird nichts hochgeladen. Ich denke/hoffe das Script ist einigermasen übersichtlich.
<?php
ini_set ('error_reporting', E_ALL);
$pfad = 'upload/';
$dateiupload_erfolgreich = false;
function CheckFilename($dateiname,$pfad)
{
global $fehler; $fehler = array();
if (file_exists($pfad.$dateiname)) array_push($fehler, 'Es existiert bereits eine Datei mit dem Namen!');
if(!in_array(strtolower(substr($dateiname,-4)),array('.jpg','jpeg','.png','.gif'))) array_push($fehler, 'Bitte nur Bilder mit der Endung .jpg, .jpeg, .png oder .gif hochladen!');
return (sizeof($fehler)) ? $dateiname : false;
}
function CheckFile($dateiname_temp,$dateifehler,$dateigroesse)
{
global $fehler; $fehler = array();
switch ($dateifehler) {
case '1': $dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break;
case '2': $dateifehler_erklaerung = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break;
case '3': $dateifehler_erklaerung = 'Die Datei wurde nur teilweise hochgeladen.'; break;
case '4': $dateifehler_erklaerung = 'Es wurde keine Datei hochgeladen.'; break;
}
if($dateifehler) array_push($fehler, $dateifehler_erklaerung);
if ($dateigroesse < 1) array_push($fehler, 'Sie haben versucht keine oder eine lehre Datei hochzuladen.');
return (sizeof($fehler)) ? $dateiname_temp : false;
}
if(!empty($_POST['Send']))
{
if ($dateiname = CheckFilename($_FILES['Datei']['name'],$pfad))
{
if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))
{
move_uploaded_file($dateiname_temp, $pfad.$dateiname);
if (filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
$dateiupload_erfolgreich = true;
}
else $fehlermeldungen_ausgeben = true;
}
else $fehlermeldungen_ausgeben = true;
}
?>
<html>
<head>
<title>Datei-Upload</title>
</head>
<body>
<?php
if ($dateiupload_erfolgreich)
{
?>Ihre Datei ("<?php echo $dateiname; ?>") wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php
}
elseif (!empty($fehler))
{
?>
<br>Es sind folgende Fehler aufgetreten:<br>
<?php
foreach ($fehler as $fehlermeldung) {
echo $fehlermeldung.'<br>';
}
?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>
</body>
</html>