Frage: pdf per posttohost senden

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

  1. 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);

  2. 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

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. 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

      1. pdf per posttohost senden

        jemand eine Idee - wer kennt sich mit posttohost aus ?Danke

        Danke

        jemand eine Idee - wer kennt sich mit posttohost aus ?

        Danke