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