Guten Tag,
ich versuche gerade per HTML und PHP eine Datei auf meinen Ubuntu Server zu laden. Dies funktioniert allerdings nicht wie gewollt.
HTML:
PHP:
Output auf der Seite:
Könnt ihr mir da weiterhelfen?
ich versuche gerade per HTML und PHP eine Datei auf meinen Ubuntu Server zu laden. Dies funktioniert allerdings nicht wie gewollt.
HTML:
HTML-Code:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> </head> <body> <form enctype="multipart/form-data" method="post" action="php.php"> <span class="bold">Visitenkarte hochladen:</span> <input type="file" name="visitenkarte"> <input type="submit" /> </form> </body> </html>
PHP-Code:
<?php
// Codierung auf UTF-8 setzen
header("Content-Type: text/plain; charset=utf-8");
$uploaddir = "/var/www/html/messe/visitenkarten/"; // Uploadverzeichnis für Visitenkarten
echo "<pre>";
print_r($HTTP_POST_FILES);
echo "</pre>";
try {
// Datei auf Gültigkeit überprüfen
if (!isset($_FILES['upfile']['error']))
{
throw new RuntimeException('Debug: isset = false; \n');
}
else if (is_array($_FILES['upfile']['error']))
{
throw new RuntimeException('Debug: is_array = true; \n');
}
// Auf Fehler prüfen
switch ($_FILES['upfile']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new RuntimeException('Keine Datei hochgeladen.\n');
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
throw new RuntimeException('Datei zu groß.\n');
default:
throw new RuntimeException('Unbekannter Fehler.\n');
}
// Dateigröße prüfen
if ($_FILES['upfile']['size'] > 1000000) {
throw new RuntimeException('Datei zu groß.\n');
}
// Dateityp prüfen
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (false === $ext = array_search(
$finfo->file($_FILES['upfile']['tmp_name']),
array(
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
),
true
)) {
throw new RuntimeException('Ungültiges Dateiformat.\n');
}
// Datei verschieben
if (!move_uploaded_file(
$_FILES['upfile']['tmp_name'],
sprintf($uploaddir . '%s.%s',
sha1_file($_FILES['upfile']['tmp_name']),
$ext
)
)) {
throw new RuntimeException('Datei konnte nicht verschoben werden.\n');
}
echo 'Datei wurde erfolgreich hochgeladen.\n';
} catch (RuntimeException $e) {
echo $e->getMessage();
}
echo "<pre>";print_r($_FILES); echo "</pre>";
?>
Code:
<pre></pre>Debug: isset = false; \n<pre>Array ( [visitenkarte] => Array ( [name] => logo.jpg [type] => image/jpeg [tmp_name] => /var/www/html/uploads/phpOjR028 [error] => 0 [size] => 41416 ) )
Kommentar