pdf per posttohost senden
Frage
- php
Hallo,
ich habe ein schönes Beispiel für posttohost gefunden:
1. <?php
2. function PostToHost($host, $port, $path, $filedata) {
3. $data = "";
4. $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
5. $fp = fsockopen($host, $port);
.
.
.
17. $data .= "--$boundary\n";
19. // Sammeln der FILE Daten
20. $data .= "Content-Disposition: form-data; name="{$filedata[0]}"; filename="{$filedata[1]}"\n";
21. $data .= "Content-Type: image/jpeg\n";
22. $data .= "Content-Transfer-Encoding: binary\n\n";
23. $data .= $filedata[2]."\n";
24. $data .= "--$boundary--\n";
25.
26. // Senden aller Informationen
27. fputs($fp, "Content-length: ".strlen($data)."\n\n");
28. fputs($fp, $data);
29.
30. // Auslesen der Antwort
31. while(!feof($fp)) {
32. $res .= fread($fp, 1);
33. }
34. fclose($fp);
35.
36. return $res;
37. }
38.
40. $data = file_get_contents('TestBild.jpg');
41. $filedata = array('inputname', 'filename.jpg', $data);
42.
43. echo PostToHost ("localhost", 80, "script.php", filedata);
44. ?>
So, wenn ich jetzt ein pdf senden möchte, bekomm ich das einfach nicht hin.
Ich habe schon Content-Type: application/pdf gesetzt, aber dennoch funzt es nicht. Liegt es vieleicht an Zeile 22. ($data .= "Content-Transfer-Encoding: binary\n\n";) oder ist das script absolut nicht geeignet? Hat jemand eine Idee, wie ich das script mit pdf zum laufen bekomme. Bitte Bitte
Thanks
So, wenn ich jetzt ein pdf senden möchte,
hierzu habe ich die beiden Variablen wie folgt schon geändert:
$data = file_get_contents('anhang.pdf');
$filedata = array('anhang', 'anhang.pdf', $data);
Hi,
So, wenn ich jetzt ein pdf senden möchte, bekomm ich das einfach nicht hin.
Wenn du das nachvollziehbare Beschreiben von Problemen nicht hin bekommst - dann lies </hilfe/charta.htm#tipps-fuer-fragende>
Ich habe schon Content-Type: application/pdf gesetzt, aber dennoch funzt es nicht. Liegt es vieleicht an Zeile 22. ($data .= "Content-Transfer-Encoding: binary\n\n";)
Dieses Encoding koennte zumindest problematisch sein - weil es nun mal eigentlich "gar kein" Encoding ist, sondern nur die reinen Binaerdaten enthaelt. Wenn diese aber wiederum die als Boundary verwendete Zeichenkette enthalten sollen, dann kracht das natuerlich.
MfG ChrisB
Dieses Encoding koennte zumindest problematisch sein - weil es nun mal
Hi Chris,
das kann ich mir schon vorstellen, nur wie löse ich das,eine Idee, was ich
ändern muss ?
z.B.
fputs($fp, "Content-Type: multipart/form-data; boundary=---------------------------180211500828737\r\n");
fputs($fp, "Content-Length: 45266\r\n");
fputs($fp, "-----------------------------180211500828737\r\n");
fputs($fp, "Content-Disposition: form-data; name="FileName"\r\n");
fputs($fp, "filename="anhang.pdf"\r\n");
fputs($fp, "Content-Type: application/pdf\r\n");
und wie geht's weiter, wie sende ich jetzt den Inhalt der pdf-Datei, damit diese ankommt ? (die Variable $data = file_get_contents('anhang.pdf') ?)
Danke
Danke
jemand eine Idee - wer kennt sich mit posttohost aus ?
Danke