phpbar.de logo

Mailinglisten-Archive

[php] Dateinamen bei Upload zerpfl�cken und neu machen

[php] Dateinamen bei Upload zerpfl�cken und neu machen

Sascha Meyer harlequin2 at gmx.de
Sa Okt 1 16:49:21 CEST 2011


Hi Trawell,

Trawell schrieb:
> ich hoffe das klappt, mein erster Versuch mit einer Mailingliste :)

Jo, hat geklappt :-)

> Ich m�chte einen Bild Upload programmieren...und die auf dem Webserver
abgelegte Datei soll die Artikel Nummer als Datei haben.

Hast Du Dir schon die Dokumentation zum File-Upload angesehen? [1]

Im Prinzip steht es Dir vollkommen frei, die Datei so zu benennen wie Du
willst, Du erh�ltst lediglich in der Variable $_FILES['userfile']['name']
(wenn Dein Dateifeld im Formular den Namen "userfile" hatte) den
Originalnamen, den Du einfach verwerfen kannst, stattdessen m�sstest Du Dir
in einem weiteren Formularfeld die Artikelnummer mitsenden. Code s�he dann
in etwa so aus:

[HTML]
<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" name="userfile" />
<input type="hidden" name="item_id" value="123" />
<input type="submit" value="Store file" />
</form>
[/HTML]

[PHP]
<?php
// hier sollte man dann noch gewisse Checks machen wie z.B.
Dateitypenvergleiche, �berpr�fung von Rechten etc. etc.
if (isset($_FILES) && isset($_POST["item_id"])) {
  $itemId= $_POST["item_id"];
  // quick'n'dirty-check des Dateityps
  if (strops(strtolower($_POST["name"]), ".gif")) {
    $suffix= ".gif";
  } elseif (strops(strtolower($_POST["name"]), ".jpg") ||
strpos(strtolower($_POST["name"]), ".jpeg")) {
    $suffix= ".jpg";
  }
  if (isset($suffix)) {
    move_uploaded_file($_FILES["userfile"]["tmp_name"],
"DESTINATION/".$itemId.".suffix);
    print "Datei wurde gespeichert";
  } else {
    print "Dateityp nicht erlaubt.";
  }
}
?>
[/PHP]

Meine Outlook-Autokorrektur nervt :-)

Enjoy,

Sascha

[1] http://de3.php.net/manual/en/features.file-upload.php


php::bar PHP Wiki   -   Listenarchive