Einzelnen Beitrag anzeigen
Alt 23.06.2007, 16:26  
Zergling-new
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ein schnurznormales Upload-Skript kann ich dir anbieten, das habe ich kürzlich für einen Freund geschrieben. Funktioniert mit entsprechenden Ordner-Rechten, hat jedoch keine Validierung oder Sicherheitsüberprüfung. Vielleicht hilfts dir ja aber als Inspiration oder copy&paste Quelle:

PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);
set_time_limit(0);

$aMessages = array();
$sUploadDir 'upload/'// upload-Verzeichnis relativ zu dieser Datei, Slash am Ende nicht vergessen, CHMOD Rechte setzen! (zB 0755)
if (array_key_exists('upload'$_FILES) && is_array($_FILES['upload'])) {
    
$sFile dirname(__FILE__) . '/' .$sUploadDir $_FILES['upload']['name'];
    
$sPathinfo pathinfo($_FILES['upload']['name']);
    
$sExtension $sPathinfo['extension'];
    
$aDenyExtensions = array('php''htaccess''htpasswd''do''cgi'); // nicht erlaubte Dateiendungen
    
if (in_array($sExtension$aDenyExtensions)) {
        
$aMessages[] = 'Die Datei hat eine nicht erlaubte Dateiendung.';
    } else if (!
move_uploaded_file($_FILES['upload']['tmp_name'], $sFile)) {
        
$aMessages[] = sprintf('Die Datei konnte <u>nicht</u> hochgeladen werden - Fehlercode [url="http://de.php.net/manual/de/features.file-upload.errors.php"]%u[/url].'$_FILES['upload']['error']);
    } else {
        
$aMessages[] = 'Die Datei wurde hochgeladen.';
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title></title>
</head>
<body>

<?php
if (count($aMessages) > 0) {
?>
<ul>
<?php
    
foreach ($aMessages as $sMessage) {
?>[*]<?php echo $sMessage?>
<?php
    
}
?>[/list]
<hr />
<?php
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    <input name="upload" type="file" />
    <input type="submit" />
</form>

<hr />

<?php
// upload-Ordner auslesen
$aFilelist = array();
$rPath opendir($sUploadDir);
while ((
$sFilename readdir($rPath)) !== false) {
    if (
$sFilename != '.' && $sFilename != '..') {
        
$sFullFilename $sUploadDir $sFilename;
        
$aFilelist[] = array('name' => $sFilename'size' => filesize($sFullFilename), 'lastmodified' => filemtime($sFullFilename));
    }
}
closedir($rPath);
if (
count($aFilelist) == 0) {
?>
Es wurden noch keine Dateien hochgeladen.
<?php
} else {
    function 
filesort($aOne$aTwo) {
        
$sCompare 'lastmodified'// falls nach Name oder Dateigröße sortiert werden soll, einfach 'name' oder 'size' eintragen
        
return $aOne[$sCompare] == $aTwo[$sCompare] ? : ($aOne[$sCompare] < $aTwo[$sCompare] ? : -1);
        
// wenn Sortierung absteigend sortiert werden soll, 1 mit -1 vertauschen
    
}
    
// Dateien sortieren
    
usort($aFilelist'filesort');
    
reset($aFilelist);
?>
<table summary="">
<?php
    
foreach ($aFilelist as $sFile) {
?>
    <tr>
        <td>[url="<?php echo $sUploadDir $sFile['name'?>"]<?php echo $sFile['name']; ?>[/url]</td>
        <td><?php echo round($sFile['size'] / 10242); ?> KB</td>
        <td><?php echo date('d.m.Y - H:i'$sFile['lastmodified']); ?> Uhr</td>
    </tr>
<?php
    
}
?>
</table>
<?php
}
?>

</body>
</html>
Zergling-new ist offline