Bild wird mit HTML-Formular nicht übertragen
Carsten
- php
Hallo,
ich versuche, mittels Formular (type=file) eine Bilddatei auf meinen Server zu übertragen. Zunächst soll die Datei übertragen werden, anschließend soll der Dateiname angepaßt werden, z.B. 4.jpg.
So verarbeite ich das ganze in meinem PHP-Skript:
if ((!empty($HTTP_POST_FILES['Pic']['tmp_name']))&&(is_uploaded_file($HTTP_POST_FILES['Pic']['tmp_name']))){
move_uploaded_file($HTTP_POST_FILES['Pic']['tmp_name'],"PiAr/".$NeueArtikelNr.".jpg");
rahmen("Foto wurde übertragen.<br>Datensatz wurde gespeichert.");
}
else{
rahmen("Datensatz wurde gespeichert.");
}
Folgende Fehlermeldung erscheint bei mir aber:
Warning: Unable to create 'PiAr/.jpg': Permission denied in (Pfad)/dbconf/dbedit3.php on line 22
Warning: Unable to move '(Pfad)/phptmp/php3ZD77j' to 'PiAr/.jpg' in (Pfad)/dbconf/dbedit3.php on line 22
Kann mir mal wieder jemand helfen?
Danke! Carsten
Du musst mit chmod die permissions auf schreiberlaubnis in dem Ordner setzten... also ich glaube 777
cya
Tron
P.S:: Das Geht mit rechtsklick und dann chmod auf den ordner(in cuteftp)
P.S:: Das Geht mit rechtsklick und dann chmod auf den ordner(in cuteftp)
Dat löpt!!! Danke!
Bei WS_FTP Pro übrigens auch mit rechtslick und chmod.
Was bedeutet das denn?
Bei WS_FTP Pro übrigens auch mit rechtslick und chmod.
Was bedeutet das denn?
chmod heisst change mode = Ändern der Rechte einer Datei/eines Ordners. Mit den Zahlen gibst du an, wer alles was mit Deinen Dateien machen kann. Die drei Zahlen sind Owner/Group/Others, Und jede Zahl setzt sich aus weiteren Zahlen zusammen: 4 ist lesen, 2, ist schreiben und 1 ist ausführen. Die Zahlen werden addiert und ergeben dann das, was der betreffende alles machen darf. Ordner müssen ausführbar sein, um geöffnet werden zu können.
Streng genommen gibt es noch einen Wert vor den drei Zahlen, mit dem festgelegt wird, welche UserId und GroupId alle weiteren Dateien haben sollen oder ob die Datei mit bestimmten (Root-)Rechten ausgeführt werden darf. Das sollte dich allerdings im Web-Umfeld nicht tangieren.
chmod 777 <your_file> heisst also 4+3+1=7 für den Besitzer, alle in der gruppe, zu der der Ordner gehört und für den Rest. Daraus folgt, dass Du die Rechte wieder ändern solltest. Denn _alle_ sollten nicht lesen, schreiben und öffnen können. Je nachdem, unter welchem User Dein Server läuft und wem der Ordner gehört (dem Server?), sollte ein chmod 751 <your_file> reichen. Damit kann die Gruppe nur lesen und öffnen, aber nicht schreiben, der Rest nur öffnen. Sollte das nicht gehen, weil der Server unter einen anderen Id läuft als die, die den Ordner angelegt hat, musst Du ein chmod 771 <you_file> machen. Aber die 7 am Ende gehört weg. Es mag kein ausdrückliches Risiko sein, aber es ist einfach unsauber, allen den vollen Zugriff zu geben, wenn es nicht notwendig ist.
Hoffe, Deine Frage beantwortet zu haben:
Tobias
Danke! Sehr informativ.
Carsten