Mailinglisten-Archive |
> ich baue momentan an einem kleinen tool für einen admin-bereich, über
> das geprüfte grafiken von "admins" usern zugeordnet und über den
> browser upgeloadet werden können. das skript ist zusammengestoppelt aus
> den beispielen von php-center und der php-doku. nach dem upload wird
> mittels is_uploaded_file gecheckt ob die datei korrekt ist. dabei wird
> mir jedes mal ausgegeben, dass die datei nicht die upgeloadete ist. php
> legt brav in /tmp eine temporäre datei an. das skript sieht so aus:
Hab es jetzt so umgebaut dass es funktioniert. laut php-doku schaut
is_uploaded_file im http_post_vars-array nach. korrekt muss aber in
http_post_files nachgeschaut werden...
<form action="<?php print $PHP_SELF ?>" method="post"
enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="Uploaden">
<input type="hidden" name="chatuser" value="xxx">
</form>
<hr>
<?php
$userimgdir="/tmp/bildchen/";
if (isset($image)) {
$array=$HTTP_POST_FILES["image"];
// Dateinamen ueberpruefen
if (ereg("[^a-zA-Z0-9\._]",$image_name))
die("Ungueltiger Dateiname: $image_name<br>");
// Suffix ueberpruefen
$ext=ereg_replace("^\.","",substr(strtolower($image_name),strlen($image
_name)-4));
if ($ext!="jpg" && $ext!="png" && $ext!="gif" && $ext!="jpeg")
die("$image_name ist keine gültige Grafik (gif, png, jpg,
jpeg)<br>");
// Server-Vars ueberpruefen
if (isset($HTTP_COOKIE_VARS["image"]) || isset($HTTP_POST_VARS
["image"]) || isset($HTTP_GET_VARS ["image"])
)
die("Datei darf nicht in Cookie/Get/Post enthalten sein!");
// Verzeichnis erstellen
if (!file_exists($userimgdir.$chatuser)) {
if (!mkdir($userimgdir.$chatuser,0755))
die("Verzeichnis konnte nicht erstellt werden<br>");
}
// Datei kopieren
$tmpfile=$array["tmp_name"];
$ts=time();
$newfile=$userimgdir.$chatuser."/".$ts.".".$ext;
if (!copy($tmpfile, $newfile))
die("$image_name konnte nicht kopiert werden!<br>");
print "$image_name wurde gespeichert in $newfile!";
}
#phpinfo();
?>
php::bar PHP Wiki - Listenarchive