Datei-Upload Script

Randpoger

Grünschnabel
hallo...

hab hier ein einfaches PHP-Script für den Datei-Upload...nur leider er nicht...also die Dateien werden nicht auf dem Server gespeichert!
Kann jemand mal kontrollieren ob ich da was falsch mach:

Code:
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" enctype="multipart/form-data" method="post" action="test.php"><p> <input type="file" name="file" copy($file,"tmp/$file_name")><br><input type="submit" name="Abschicken" value="Download beginnen"></p>
</form></body></html>

Thx!
 
Wieso schreibst du

copy($file,"tmp/$file_name")

das mit in das input feld mit rein?!
Zeig mal die test.php oder ist die das schon?!
 
das ist die test.php

...ich muss dazusagen..das meine PHP-Kenntnisse noch sehr mager sind! wo kommt dann dieses "copy..." hin?

Greetz
 
Auf jedenfall nicht dahin. ^^

Du musst in der test.php eine IF-Abfrage machen, ob bereits eine Datei hochgeladen wurde (alternativ ob der Button gedrück wurde).
Wenn Nein: Das Form anzeigen
Wenn Ja: Die Datei kopieren

Aber so in einem Schritt funktioniert das nicht.

PHP:
<?
      if (isset($_FILES['file'])) {
        move_uploaded_file($_FILES['file']['tmp_name'], PFAD_WOS_HINSOLL);
        echo "Datei hochgeladen";
      }
else {
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" enctype="multipart/form-data" method="post" action="test.php"><p> <input type="file" name="file"><br><input type="submit" name="Abschicken" value="Download beginnen"></p>
</form></body></html>
<?
}
?>

Warum steht da eigentlich "Download beginnen" beim Upload?
 
hab jetzt mal gekuckt und gemacht....und so siehts im mom aus:

test.php:


PHP:
<?
      if (isset($_FILES['file'])) {
        move_uploaded_file($_FILES['file']['tmp_name'], '/hmtl/privat/dir/');
        echo "Datei hochgeladen";
      }
else {
?>


test.html:

Code:
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" enctype="multipart/form-data" method="post" action="test.php"><p> <input type="file" name="file"><br><input type="submit" name="Abschicken" value="Download beginnen"></p>
</form></body></html>
<?
}
?>

so..und wenn ich nun was hochladen will kommt folgende meldung:

Parse error: parse error, unexpected $ in /home/www/web106/html/privat/dir/test.php on line 7


tja..so siehts aus!
 
du hast das mit den klammern falsch gemacht du kannst

test.php
PHP:
    <? 
  	  if (isset($_FILES['file'])) { 
  		move_uploaded_file($_FILES['file']['tmp_name'], '/hmtl/privat/dir/'); 
  		echo "Datei hochgeladen"; 
  	  } 
  else { // Hier in der Datei musst du auch die Klammer schließen.
   ?>
Du kannst die klammer nicht in einer anderen datei schließen.

So könntest du es machen.
PHP:
     <? 
   	  if (isset($_FILES['file'])) { 
   		move_uploaded_file($_FILES['file']['tmp_name'], '/hmtl/privat/dir/'); 
   		echo "Datei hochgeladen"; 
   	  } 
   else { 
    ?>
  <html>
 <head>
 </head>
 <body bgcolor="#FFFFFF" text="#000000">
 <form name="form1" enctype="multipart/form-data" method="post" action="test.php"><p> <input type="file" name="file"><br><input type="submit" name="Abschicken" value="Download beginnen"></p>
 </form></body></html> 
 <? } ?>
 
Zuletzt bearbeitet:
ok...jetzt kommt folgende meldung:

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 869 is not allowed to access / owned by uid 0 in /home/www/web106/html/privat/dir/test.php on line 3
Datei hochgeladen


hm...kann es da sein das durch dieses SAFE MODE ...das Upload auf dem Server nicht verfügbar is...weil da gibs ja immer so probleme....?!
 
copy() wird die gleiche SafeMode-Restriction werfen wie move_uploaded_file().
Ausserdem solltest Du bei move_uploaded_file() fuer das Target auch einen Dateinamen angeben, und nicht nur ein Verzeichnis.
Der TempName ist ein wirres Zufallskonstrukt welches Du sicher nicht so beibehalten willst.
 
Zurück