Upload in einem Formular!

Es geht auch mit copy und ohne rename.

PHP:
copy($_FILES['personalrecord']['tmp_name'],"homepages/43/d95496899/htdocs/care/apliccant/".$first_name."-".$last_name."-personalrecord.txt");
 
Wenn ich das jetzt mal so annehme, wazu ist dann noch die Funktion move_uploaded_file gut? Bewirkt die dann nicht das selbe wie kopie? oder soll ich mir einfach das rename sparen und durch copy ersetzen?
 
Okay, verstanden! Also ist demnach das Verschieben besser, als das kopieren, da ja somit keine Müll auf dem Server bleibt!

So, dass hätten wir geklärt. Da bei mir auf dem Server leider immer noch keine Datei ankommt habe ich es jetzt mal nach Anleitung (Tutorial von hier) versucht. Es funktioniert auch super, so lange es nicht in diesem Script mit der switch-Abfrage ist. Daher meine Frage, ob die Funktion daran Schuld sein kann, dass ich die Datei aus dem temporären Ordner nicht verschieben kann, da diese ja laut PHP-Handbuch gelöscht wird sobald der Request beendet ist. Ich habe den Verdacht, daß dies der eigentliche Fehler ist Oder liege ich da jetzt wieder falsch?
 
Mal davon abgesehen, das du eine (für mich) eigenartige schreibweise (alles in php zu packen) hast, poste doch das überarbeitete Script noch einmal.
(Wie gesagt, das ist meine persönliche meinung und nicht böse gemeint.;-])
Auch die schreibweise deiner switch case Bedingung (alternative Syntax).
 
Ich bin an der Stelle Autodidakt und wenn man nicht Fragt, kann man nicht besser werden. Ich habe vieles selbver bei gebracht und fand diese Variante nicht verkehrt.
Hier das Script aus dem Tutorial, was funktioniert:

test.html:
PHP:
<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="file" name="file"><br> 
<input type="submit" value="hochladen"> 
</form>

upload.php
PHP:
<?php  
$first_name = "Jochen";
$uid = "22";
$tempname = $_FILES['file']['tmp_name'];  
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type'];  
$size = $_FILES['file']['size'];  
 if($type != "image/gif" && $type != "image/pjpeg") {  
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";  
}  
if(empty($err)) {  
    copy("$tempname", "applicant/$uid-$first_name-test");  // An der Stelle kann ich leider nicht feststellen, warum er mir keine Dateiänderung ranhängt!
    echo "Die Datei $name wurde erfolgreich hochgeladen!";  
}  
else {  
    foreach($err as $error)  
    echo "$error<br>";  
}  
?>

Wenn ich den Teil der upload.php dann in mein anderes script einbinde, funktioniert es nicht mehr!
 
Noch eine verständnis Frage.
Was für eine Datei möchtest du uploaden ?
Zu diesm Formular sollen Dokument hochgeladen werden.
Das Tutorial was du da nutzt,prüft ob du ein pjpeg oder gif hochladen möchtest.
Der upload selber ist das:
PHP:
if($_POST['submit']) {
 $tempname = $_FILES['personalrecord']['tmp_name'];
 copy("$tempname", "/wo/auch/immer/Datei.txt"); 
 }
 
Okay, mit dem copy-Befehl hat es nach langem tüffteln dann geklappt. Jetzt noch ein kleines anderes Problem:

PHP:
$tempname = $_FILES['personalrecord']['tmp_name'];
copy("$tempname", "applicant/$uid-$last_name-personalrecord");

Dies kopiert ja die Datei und benennt sie um, nur leider ohne Erweiterung. Wie kann man die Original-Erweiterung da wieder anhängen?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück