michi90
Goto Top

php, upload datei in variable umbenennen

datei mit dem Inhalt aus einem Formular, umbenennen in einer variablen

Hallo,
also......


Ich habe ein Formular erstellt, dieser Inhalt wird hochgeladen und als datei gespeichert, danach soll diese umbenannt werden in, aus einem bestimmten Inhalt vom Formular...
Hier ein stück vom quelltext:


upload.php:

$datum = getdate();

$filename = "upload/$datum[mday]. $datum[month] $datum[year]_Formular.txt";
$fp = fopen ($filename, "a+");

$name=$_POST['Name'];
$vorname=$_POST['Vorname'];
$ausgabe=$name.", ".$vorname;

$datei=fopen($filename,"w");
$output=fwrite($datei,$ausgabe);


move_uploaded_file($_FILES['datei']['tmp_name'], "upload/$name");


"$name " erkennt er als Fehler ... warum ??


hoffe ihr versteht was ich meine

Gruß
Michi

Content-Key: 116415

Url: https://administrator.de/contentid/116415

Printed on: April 19, 2024 at 12:04 o'clock

Member: ITLocke
ITLocke May 19, 2009 at 20:11:00 (UTC)
Goto Top
Hallo,

versuch mal "upload/".$name

Gruß Locke
Member: Michi90
Michi90 May 20, 2009 at 07:36:05 (UTC)
Goto Top
mh, danke ich versuchs nachher mal =)
danke erstmal.
Member: Michi90
Michi90 May 20, 2009 at 14:40:53 (UTC)
Goto Top
Hat nicht funktioniert ... face-sad
Noch wer ne idee ??
Member: nxclass
nxclass May 26, 2009 at 07:01:38 (UTC)
Goto Top
- poste mal die Fehlermeldung
- gib mal den Inhalt von $name aus
- prüfe ob die hochgeladene Datei existiert
- benutze mal eine absolute Pfadangabe
- prüfe ob PHP schreib Rechte im ziel Ordner hat

PS.:
$filename = "upload/$datum[mday]. $datum[month] $datum[year]_Formular.txt";  
sollte das nicht irgendwie so aussehen?
$filename = "upload/{$datum[mday]}. {$datum[month]}. {$datum[year]}_Formular.txt";  
Member: Michi90
Michi90 May 26, 2009 at 13:31:01 (UTC)
Goto Top
$name ist ein Formular
<td width="10%">Name:</td>
<td width="60%" ><input name="Name" type="text" size="30" maxlength="30"></td>

Schreibrechte sind vorhanden... ich mach das grad auch erstmal alles lokal mit "XAMPP apache"

das mit den pfad geht ja eigentlich auch, blos er soll ja die datei so umbennen was im formular angegeben wurde, das macht er nicht ....

Fehlermeldungen:

Warning: move_uploaded_file(upload/) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\Dokumente und Einstellungen\Anwender\Desktop\Abbund24 website\software\xampp-win32-1.7.1\xampp\htdocs\abbund\upload.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Dokumente und Einstellungen\Anwender\Desktop\Abbund24 website\software\xampp-win32-1.7.1\xampp\tmp\php4B4.tmp' to 'upload/' in C:\Dokumente und Einstellungen\Anwender\Desktop\Abbund24 website\software\xampp-win32-1.7.1\xampp\htdocs\abbund\upload.php on line 16


line16 =
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$name);
Member: nxclass
nxclass May 26, 2009 at 15:09:35 (UTC)
Goto Top
Wie Du in deiner Fehlermeldung erkennen solltest, stimmt etwas nicht mit deinem Zielpfad+Dateinamen.
Prüfe mal was mit der Variablen $name vorher geschieht.

sicher das Du das Formular mit POST sendest ? - füge mal:
echo 'POST: '.print_r($_POST,true)."<br>\n";  
echo 'GET: '.print_r($_GET,true)."<br>\n";  
am Anfang deines Quellcodes ein.
(evtl. kannst Du auch gleich die $_REQUEST Variable benutzen)
Member: Michi90
Michi90 May 26, 2009 at 17:17:24 (UTC)
Goto Top
ok, DANKE ich kanns leider erst wieder morgen probieren und melde mich dann....
Member: Michi90
Michi90 May 28, 2009 at 08:55:31 (UTC)
Goto Top
hm, neee klappt iwie alles nich ... ich werd mir was komplett anderes überlegen.....
aber trotzdem danke erstmal, werd bestimmt die nächsten tage noch mehr fragen haben =)


Gruß
Michi
Member: ITLocke
ITLocke May 29, 2009 at 14:12:42 (UTC)
Goto Top
Hi nochmal,

hab mir grad eines meiner älteren scripte angesehen und dabei eines entdeckt, welches evtl. weiterhilft.

In diesem speichere ich die vorher mittels script hochgeladenen Dateien mit dem copy Befehl.

copy($_FILES['data']['tmp_name'][$i], $std_path.$path."/".$_FILES['data']['name'][$i])  

hierbei sind $i = Zählvariable (Multidateiupload)
$std_path = absoluter! Pfad ( Bsp.: "/srv/www/htdocs...")
$path = Unterverzeichnis (brauchte ich hier, da verschiedene Dateitypen in verschiedene Verzeichnisse kopiert werden sollten.


Gruß und schöne Pfingsten

Locke
Member: Zett
Zett Sep 07, 2009 at 13:55:40 (UTC)
Goto Top
Hi,

also soweit ich das erkennen kann liegt das problem hier am Zielpfad von move_uploaded_file.

Dieser muss absolut sein, d.h. es muss der vollständige Pfad angegeben werden.
Wenn du das Script unter Windows ausführst, muss der Zielpfad also wie folgt aussehen:
C:\Dokumente und Einstellungen\Anwender\Desktop\Abbund24 website\software\xampp-win32-1.7.1\xampp\htdocs\abbund\upload\

Da es sich um ein Windowssystem handelt musst du außerdem die Backslahs backslashen, also so:
C:\\Dokumente und Einstellungen\\Anwender\\Desktop\\Abbund24 website\\software\\xampp-win32-1.7.1\\xampp\\htdocs\\abbund\\upload\\

Der ganze Befehl müsste dann am Ende so aussehen:
<?php
move_uploaded_file ($_FILES['datei']['tmp_name'], "C:\\Dokumente und Einstellungen\\Anwender\\Desktop\\Abbund24 website\\software\\xampp-win32-1.7.1\\xampp\\htdocs\\abbund\\upload\\".$name);  
?>

Außerdem kannst du dir die Arbeit mit dem Umbenennen sparen, wenn du die Datei gleich zu Beginn unter dem richtigen Namen speicherst, da du die Informationen ja aus dem gleichen Formular beziehst, wenn ich das richtig verstanden habe.

MfG - Zett