phpbar.de logo

Mailinglisten-Archive

[php] Mal wieder Dateiupload: is_uploaded_file

[php] Mal wieder Dateiupload: is_uploaded_file

Oliver Kurlvink php_(at)_phpcenter.de
25 Jan 2002 01:34:54 CET


>  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&uuml;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