PHP Teil für Datei Upload

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Dusselchen14

Betreff: PHP Teil für Datei Upload

BeitragDo, Dez 10, 2009 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ich versuche gerade mir php-kenntnisse anzulegen. Bin allerdings am verzweifeln.
Angenommen ich will mit meinem BB Proggy den dateipfad der datei auf der festplatte, den namen der datei und den Ordner in den die Datei auf dem Server später liegen soll via GET an die php Datei übergeben. (BB-Teil klar) Wie bewerkstellige ich dann den upload? also den php-teil.

Angenommen wir Reden von der Datei "C:\Users\Public\Pictures\Sample Pictures\Pinguine.JPG" die als "Pinguine.JPG" auf den Server in den Ordner "Upload" soll.
thx
 

Lion

BeitragDo, Dez 10, 2009 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
edit: whups, verlesen...

für php musst du schauen, ob du die daten auch richtig organisiert verstaust, am besten über ne sql datenbank. für den normalen upload findste bei google bestimmt was
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Goodjee

BeitragFr, Dez 11, 2009 0:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
<html><head/><?php
$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['filechooser']['name']);
//
if(move_uploaded_file($_FILES['filechooser']['tmp_name'], $target_path)) {
    echo "<body onload=\"alert('Upload erfolgreich')\">";
} else{
    echo "<body onload=\"alert('Upload fehlgeschlagen".$_POST['pw']."')\">";
}
?>
</body></html>

das geht aber nur mit post, was aber für dich ja kein großer unterschied ist
das als action für dein htmlformular und du wirst glücklich wenn du das verzeichnis uploads/ angelegt hast...natürlich nur die grundfunktionalität
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Jolinah

BeitragFr, Dez 11, 2009 0:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Uploads solltest du POST statt GET verwenden. Wenn du ausserdem den Content-Type "multipart/form-data" verwendest kannst du neben dem Upload auch noch andere Formular-Daten mitsenden:

Code: [AUSKLAPPEN]
POST /php_script.php HTTP/1.1
Host: domain.de
Content-Type: multipart/form-data; boundary=Trennzeichen12345
Content-Length: <Länge des gesamten Inhalts>

--Trennzeichen12345
Content-Disposition: form-data; name="file"; filename="Dateiname.jpg"
Content-Type: image/jpeg

<Binärdaten vom Upload, in diesem Fall ein JPG-Bild>
--Trennzeichen12345
Content-Disposition: form-data; name="pfad"

upload/
--Trennzeichen12345--


<Länge des gesamten Inhalts> = nicht nur die Länge der hochgeladenen Datei, sondern von allem was unterhalb der ersten Leerzeile steht in Bytes.

Wichtig ist das Boundary im Zusammenhang mit dem multipart/form-data. Dieses wird als Trennzeichen benutzt. Effektiv werden zum Trennen der einzelnen Teile noch zwei Bindestriche vorangestellt. Ganz am Ende kommt dann nochmal das Trennzeichen mit zusätzlich zwei Bindestrichen am Ende.

Jeder Teil kann wieder eigene "Content-xxxx"-Header haben. Nach den Headern kommt wieder eine Leerzeile wie beim HTTP-Header und anschliessend die Daten selbst.

In PHP ist es dann ganz einfach:

Code: [AUSKLAPPEN]
<?php
$tmp = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

$pfad = $_POST['pfad'] // Nur falls es eine Formular-Variable "pfad" gibt (siehe oben beim POST)

move_uploaded_file($tmp, $pfad . $name);
?>

Dusselchen14

BeitragFr, Dez 11, 2009 7:14
Antworten mit Zitat
Benutzer-Profile anzeigen
okay
ich hab es jetzt geschafft mit dem Formular:
Code: [AUSKLAPPEN]
<form enctype="multipart/form-data" action="uploadfile.php" method="post">
<input type="file" name="file"><br>

 
<input type="submit" value="hochladen">
</form>



über den aufruf der .html eine datei zu uploaden.

Aber jetzt doch nochmal ne bb-Frage:
Wie kann ich den Dateipfad denn jetzt so an die php datei übergeben damit der Upload funktioniert?
Jetzt hab ich zwar den PHP-teil verstanden aber krieg bb doch nicht auf die Reihe^^

D2006

Administrator

BeitragFr, Dez 11, 2009 9:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst nicht den Pfad der Datei senden, sondern deren Inhalt.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

Lion

BeitragFr, Dez 11, 2009 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
wars ja eigentlich doch richtig, was ich zuerst geschrieben hatte >.<
https://www.blitzforum.de/foru...ght=upload
schaus dir an, hilft dir bestimmt!
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Dusselchen14

BeitragFr, Dez 11, 2009 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hilft schon ein wenig.
Aber ich hab trotzden null Ahnung wie ich den Inhalt der Datei übergeben soll.
Muss das denn auch immer so kompliziert sein? =(

Zitat:
Code: [AUSKLAPPEN]
<?php
$tmp = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

$pfad = $_POST['pfad'] // Nur falls es eine Formular-Variable "pfad" gibt (siehe oben beim POST)

move_uploaded_file($tmp, $pfad . $name);
?>

Das hab ich ja jetzt alles verstanden....
mein problem ist nur noch 'file'
(wie) kann ich den inhalt in bb nicht einfach in die variable inhalt einlesen und dann als wert für 'file' übergeben?
Wie les ich das am besten ein für die übergabe an php?
Sorry dass ich so schwer von begriff bin. aber php ist nich grad mein spezialgebiet^^

Jolinah

BeitragSa, Dez 12, 2009 0:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich hat es nichts mehr mit PHP zu tun, eher HTTP Wink Der POST-Request muss nur richtig formatiert sein, dann erkennt PHP die Datei von alleine.

Da mich das ganze selber auch interessiert hat, habe ich mal einen "kleinen" BB-Code geschrieben. Ich werde ihn gleich ins Code-Archiv stellen und hier den Link dazu einfügen. Hoffe das hilft dir weiter...

Edit: https://www.blitzforum.de/foru...774#352774

Dusselchen14

BeitragSa, Dez 12, 2009 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke!! Funktioniert damit perfekt. Echt stark!!

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group