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-ID: 116415

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

ITLocke
ITLocke 19.05.2009 um 22:11:00 Uhr
Goto Top
Hallo,

versuch mal "upload/".$name

Gruß Locke
Michi90
Michi90 20.05.2009 um 09:36:05 Uhr
Goto Top
mh, danke ich versuchs nachher mal =)
danke erstmal.
Michi90
Michi90 20.05.2009 um 16:40:53 Uhr
Goto Top
Hat nicht funktioniert ... face-sad
Noch wer ne idee ??
nxclass
nxclass 26.05.2009 um 09:01:38 Uhr
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";  
Michi90
Michi90 26.05.2009 um 15:31:01 Uhr
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);
nxclass
nxclass 26.05.2009 um 17:09:35 Uhr
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)
Michi90
Michi90 26.05.2009 um 19:17:24 Uhr
Goto Top
ok, DANKE ich kanns leider erst wieder morgen probieren und melde mich dann....
Michi90
Michi90 28.05.2009 um 10:55:31 Uhr
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
ITLocke
ITLocke 29.05.2009 um 16:12:42 Uhr
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
Zett
Zett 07.09.2009 um 15:55:40 Uhr
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