Tom: MPG und PDF file upload ? welche methoden

Beitrag lesen

Hello,

Meine Datei sieht momentan so aus:

Was stimmt noch nicht an meinem script, WIE bekomme ich nun mein MPG file in einen bestimmeten ordner geladen???

Du hast, so scheint es, meine Verweise nicht durchgearbeiet.

$uploadPath="";

Der upload-Path wird in der php.ini oder in den VirtHosts eingestellt.
Genaueres dazu siehe http://de3.php.net/manual/en/function.ini-set.php
Er ist also i.d.R. vom Provider vorgegeben. Es handelt sich dabei um das Temporärverzeichnis.
Man muss ihn nicht wissen, da in $_FILES[$inputfeldname]['tmp_name'][0]   *1)

Lies Dir bitte auch http://de2.php.net/features.file-upload durch.

$mimiMPG="video/mpeg";
$mimiPDF="application/pdf ";  <--+

+-- Das Leerzeichen würde stören

Hier wäre ein Array angebracht

$_allowedMIME[] = 'video/mpeg';
$_allowedMIME[] = 'application/pdf';

$mpg1File=$_FILES['mpg1']['name'];

Das Name der Datei kann vom Client beliebig gesetzt werden.
Man sollte ihn immer auf seinen basename()-Anteil reduzieren
http://de2.php.net/manual/en/function.basename.php

if($mpg1File!="")

Ob das Feld leer ist, ist unerheblich. Das wäre auch möglich, wenn eine Datei hochgeladen wurde. Dann müsste eben beim Verschieben auf dem Server ein Name ausgewürfelt werden. Empfehlenswert ist da

$savename = "$user.".date('YmdHis').".$ext";

Wobei $user aus der Anmeldung des Users ermittelt wird und $ext mittels der mime_content_type() und /oder getimagesize() Funktion un einem eigenen Übersetzungs-Array.

{
 $type=mime_content_type($_FILES['mpg1']['tmp_name']);

if($type==$mimiMPG)

If (in_array($type,$_allowedMIME))

{
  if(move_uploaded_file)
   {

$saveok = move_uploaded_file($_FILES[$feldname]['tmp_name'],$pictureSavePath.'/'.$savename);

print "upok";

echo  "<p class="message">".(($saveok)?'Upload erfolgreich abgeschlossen':'Leider trat ein Fehler auf')."</p>\n";

}
  }
 }
 else{print "doc leer";}
?>
<form name="form1" method="post" action="?" enctype="multipart/form-data">
<input type="file" name="mpg1">
<input type="submit" value="up" name="submit">
</form>
</body>
</html>

Du hast leider das Feld $_FILES[$feldname]['error'][0]   *1) nicht berücksichtigt.

Das solltest Du als erstes tun, dann die Größe der Datei anschauen, ob sie größer 0 ist, denn was wollst Du leere Dateien bewwegen?
Und dann schaust Du dir den Mime-Type an und prüfst, ob du ihn annehmen willst und wohin die Datei gehört ($pictureSavePath setzen) und dann schaust Du Dir den namen der Datei an und baust daraus den $savename.

Erst _dann_ führst Du die Verschiebung durch.

*1) Der index wird nur bei Multiuploads angelegt

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau