PHP nimmt WebClient.UploadData nicht entgegen

  • C#
  • .NET (FX) 4.5–4.8

    PHP nimmt WebClient.UploadData nicht entgegen

    Moin,

    eins vorweg: Ich kann euch vorerst keinen Source zeigen, da ich die Platte, auf der dieser liegt, bis morgen Abend nicht in die Hände bekomme. Wird aber, sollte sich keine Lösung finden, entsprechend nachgereicht. Allerdings kann ich den Fehler auch aus'm Kopp (denke ich) recht gut beschreiben.

    Folgendes. Ich bastel mir derzeit ein kleines Tool, das alle X Sekunden einen Webcam-Shot macht und diesen dann an ein PHP-Script sendet. Dazu nutze ich die WebClient.UploadData Funktion.
    Zum Auslesen der Webcam benutze ich AForge, genauer gesagt die AForge.Video.DirectShow.VideoCaptureDevice-Klasse. Das funktioniert auch soweit, wie es soll. Im Prinzip gehe ich wie folgt vor:

    -Über Timer alle X Sekunden Webcam-Snapshot veranlassen.
    -Image-Objekt vom VideoCaptureDevice entgegennehmen
    -Image über ImageInstance.Save(ms, ImageFormat.Png) in einen MemoryStream schreiben.
    -Image über WebClient.UploadData("http://meineadresse.de/upload.php", "POST", ms.ToArray()); an mein PHP-Skript posten
    -PHP-Skript macht dann testweise folgendes (Originalcode):

    PHP-Quellcode

    1. <?php
    2. print_r($_POST);
    3. echo "\n";
    4. print_r($_REQUEST);
    5. echo "\n";
    6. var_dump($_FILES);
    7. //move_uploaded_file($_FILES["file"]["tmp_name"], time() . ".png");
    8. ?>
    Jedoch sind alle 3 Arrays leer ?(

    Der Content-Type-Header im WebClient ist auf application/octet-stream gesetzt.

    Testweise habe ich das Image auf meine Platte gedumped und dann die Datei über WebClient.UploadFile ans Skript gepostet. Dies funktionierte ohne Probleme, alle $_-Variablen waren gefüllt wie gewünscht. Auch ein Posten über ein HTML-Formular (File-Input) lief problemlos.

    Könnt ihr mir sagen, was ich denn mit der SendData-Methode falsch mache, dass der Server sich strikt weigert, die Daten entgegenzunehmen?