HttpUtils_NonblockingGet: Bild hochladen

Begonnen von Dr. Boris Neubert, 20 Februar 2026, 21:54:57

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

ich will mit HttpUtils_NonblockingGet ein Bild hochladen. Diesen Beitrag kenne ich.

Auf der Kommandozeile geht es so mit curl:
curl -s -X POST 'http://10.21.2.143/doUpload?dir=%2Fimage%2F' -H 'Content-Type: multipart/form-data'  -F "file=@sensorfeed.jpg;filename=fhem.jpg"
Zurück kommt dann HTML-Kode.

Das ist mein versuchtes Äquivalent in FHEM mit Perl:

    HttpUtils_NonblockingGet({
      loglevel => 1,
      url => $url,
      method => "POST",
      hideurl => 0,
      noshutdown => 1,
      #data => { 'file' => $image, 'filename' => "fhem.jpg" },
      data => $image,
      header => { 'Content-Type' => "multipart/form-data",
      },
      callback => \&push2giftv_callback,
    });

$image enthält das Bild im JPG-Format (Binärdaten, kein Dateiname!).

Die Callback-Funktion meint dazu empty answer received.

curl sendet folgendes:

POST /doUpload?dir=%2Fimage%2F HTTP/1.1
Host: localhost:9999
User-Agent: curl/8.14.1
Accept: */*
Content-Length: 3566
Content-Type: multipart/form-data; boundary=------------------------Lrzt5LS0vsj95Lw7zOnH4L

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

����JFIF``��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C             





▒▒ $.' ",#(7),01444'9=82<.342��C


▒2!!22222222222222222222222222222222222222222222222222���"��

���}!1AQa"q2��#B��R��$3br�
▒▒%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������

���w!1AQaq"2B����       #3R�br�
$4�%�▒▒&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������
                                                                                                                            ?������#ލ�_+[�m-�P�ŭ�\����1$���_��������4M���9�,nV9$(.���c;VU�������魣i�6�]Ć�C�1�
                                                                  ���q�Ws�iP��3Ԟ�W���N��s▒��U�%���aj:]�h�Za�HMɵ�
                                                                                                                �Wd}���P��3�`���EPEPEPEPEPEPEPEPEPEPEPEP����bk�Z���}�Q'��n�v�?*~���ck?�G���S�߷��.s��v
ˢ�7a�����-n�ߴM��6�      ���a�i�7Я�I⏶��>dz�`�Ǜ�'l��>n��\�ѿ�����D�+Awj���!;��0(▒p}j����>��afֶQ�ga$�l�HF2͵F�Sֱ���(��(��(��(��(��(��(��(��(��(��(��(�     ���/�㵴���C�D&���z��n������2J���,��}�5J/3��c|�&rs�8��+��?xe�    ▒I��̗�V�(;#��$�t�
                                                                                        ���X���Z~������1������c�^��5�������|� ~�+��|��It�;G�z�3���<1�\[�4V����"��A,��匝�=�5�Yy���x��9��/���S��ۏ¨x^a$~)�������?=��>T_�FO@(��x<1�\[�4V����"��A,��匝�=�5�<�qq$�i▒�q�s]7��G��Q�l�\}�s��̣�E�d`d�b�0��&�S�M�JR
                 �I"Ɖ���b�ny�A��Nn.�]�#�3��8
                                            �s�ElK)��uq0<����"W���T�"�����v��$��▒L�i��v��/�s���{�����0&)#�dG�]���DZ�g�5+kO����iS�
z1�;���1]Ě}�ƃ��6;��o�����̎��uUpOs������ϊ<Od�y���nn�����$����O `
                                                              du�>��(��(��(��(��(��(��(��(��(֝�]iZ�7��amѹEm��
姘#�癍���*��7Ri�i�.m"��H�����*��w�=Z����.�G Q�^P�7����c��se,6��³i��l_@Y �Z(�▒�ݲ^$,ix�\걮w�▒��:b����c��se,6��³i��l_@Y"rz��Z(���}���m$j��bhQ�|����qڧ��.�k�˪�w��P���I�#▒����+&��}�\j�M�9g����PO�V.<M��ZIm5���BJ�4H��ws���EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEU������c�_1�pFp��[x_Ѭ�$��[Q$��-�f1����{.{�▒w������▒�<�:_�7n�6y���o���4��]��-��▒j6�j�o�$E�����@��W;@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@�˛[MN�����������6y�����j���c��Kx-vc��o���|�IRy%[��T��8_��d���TW�[�@-�xu▒�2���`�p0�G'p皥Et�x�Z▒&��\j�
  4��LJ��(9
           #�z�����t�L{�Q�)[�▒����#�T��ukR�.5]F����O;�l
                                                       �`:
�EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV�����bIUcDpK?P~��V!�g�i\�e$�Χ=��c�����k;}�1���6�2�3#3.ᰒ1���[�+���?������Bntԙ�i���=��(����
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
���>b�|:��l<?wqI$!▒���3���T�#y;x,-lMU▒1�k_�/���!�r���k���[�J�9ax�U6�䃜�A\����Đ��b�����]5�G��8Z���+N6�����tQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE��
--------------------------Lrzt5LS0vsj95Lw7zOnH4L--


Und da verließen sie ihn.

Wie kann ich mit HttpUtils ein Bild per Formular wie mit curl hochladen?

Viele Grüße
Boris
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

passibe, der in diesem Board nicht schreiben darf, hat mich noch darauf gebracht, dass ich zum Vergleich das Ergebnis des HttpUtils_NonBlockingGet() zeigen sollte. Hier ist es:

POST /doUpload?dir=%2Fimage%2F HTTP/1.0
Host: dora.intern.gs21.de:9999
User-Agent: fhem
Accept-Encoding: gzip,deflate
Content-Type: multipart/form-data
Content-Length: 8291

����JFIF``��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C             





▒▒ $.' ",#(7),01444'9=82<.342��C


▒2!!22222222222222222222222222222222222222222222222222�X "��

���}!1AQa"q2��#B��R��$3br�
▒▒%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������

���w!1AQaq"2B����       #3R�br�
$4�%�▒▒&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������
                                                                                                                            ?���(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(���

Beide Requests habe ich übrigens eingefangen, indem ich nc -l -p 9999 in einem Terminal habe laufen lassen und localhost:9999 als URL angegeben habe.

Man sieht, dass curl einen Multipart-Request schickt und mit dem Bilddaten noch einen eigenen Header mitsendet. Wie bringt man HttpUtils_NonBlockingGet() dazu?
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

#2
Wenn man "Content-Type: multipart/form-data" haben will, dann muss der Inhalt auch dazu passen.
FHEM hatte bisher keine explizite Unterstuetzung dafuer, ich habe jetzt eine gebastelt, und in HttpUtils.pm hinzugefuegt.

Anwendung:
  my $h = { url=>"http://localhost:8080/upload",
            callback=>sub($$$){ Log 1,"ERR:$_[1] DATA:".length($_[2]) } };
  for my $f ("picture1.png","picture2.png") {
    my $content = `cat $f`;
    HttpUtils_AddMultipartData($h, $content,
      {"content-disposition"=>"form-data; name=\"file\"; filename=\"$f\"", "content-type"=>"image/png"});
  }
  HttpUtils_NonblockingGet($h);

Ich habe es mit einem node.js Beispielprogramm getestet, damit funktioniert es.
Da die Doku (RFC7578+RFC2046) mAn schwer zu lesen ist, bin nicht sicher, ob es ueberall funktioniert, deswegen bitte um Feedback.

rudolfkoenig

Zitatpassibe, der in diesem Board nicht schreiben darf,[...]
Da HttpUtils_NonblockingGet nicht nur von Entwickler verwendet wird, schlage ich vor diesbezuegliche Probleme im Forumsbereich Automatisierung zu diskutieren.

Dr. Boris Neubert

Danke, Rudi, für den superschnellen Einbau!

Ich schreibe in diesem Thema weiter, weil ich glaube, dass es noch nicht fertig ist.

Wenn ich dem gezeigten Beispiel folge, wird der boundary nicht gesendet. Mein Code:

      my $param = {
        loglevel => 1,
        url => $url,
        method => "POST",
        hideurl => 0,
        noshutdown => 0,
        header => { 'Content-Type' => "multipart/form-data" },
        callback => sub($$$) { Log3 $name, 1,"ERR:$_[1] DATA:".length($_[2]) },
      };
      HttpUtils_AddMultipartData($param, $image,
         {"content-disposition" => "form-data; name=\"file\"; filename=\"$targetfilename\"", "content-type" => "image/jpeg"}
      );
      HttpUtils_NonblockingGet($param);

Beim Empfänger kommt an:

POST /doUpload?dir=%2Fimage%2F HTTP/1.0
Host: localhost:9999
User-Agent: fhem
Accept-Encoding: gzip,deflate
Content-Type: multipart/form-data
Content-Length: 8394

content-disposition: form-data; name="file"; filename="pipad.jpg"
content-type: image/jpeg

����JFIF``��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C





␦␦ $.' ",#(7),01444'9=82<.342��C


2!!22222222222222222222222222222222222222222222222222�X "��

���}!1AQa"q2��#B��R��$3br�
␦%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������

���w!1AQaq"2B����       #3R�br�
$4�%�␦&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������
   ?���(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(���
----

passibe (DANKE!) hatte mir gestern noch souffliert:

my $boundary = "------------------------".genUUID();
my $content_disp_type = qq(Content-Disposition: form-data; name="file"; filename="fhem.jpg"\r\nContent-Type: image/jpeg);
HttpUtils_NonblockingGet({
      loglevel => 1,
      url => $url,
      method => "POST",
      hideurl => 0,
      noshutdown => 1,
      data => "$boundary\r\n$content_disp_type\r\n\r\n$image\r\n$boundary--",,
      header => { 'Content-Type' => "multipart/form-data; boundary=$boundary" },
      callback => \&push2giftv_callback,
    });
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Alternativ setzt man kein data und Content-Type im initialen hash bzw. man haelt sich an meinem Beispiel :)


Zitatpassibe (DANKE!) hatte mir gestern noch souffliert:
Waere das nicht ein Grund das Thema dahin zu verschieben, wo auch andere mitreden koennen?
Ist meiner Ansicht nach jetzt wirklich kein Thema nur fuer Entwickler.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 22 Februar 2026, 11:51:42Alternativ setzt man kein data und Content-Type im initialen hash bzw. man haelt sich an meinem Beispiel :)

Da stand nicht, dass man das lassen soll  :P  Danke, damit funktioniert es dann auch wie erwartet.

Zitat von: rudolfkoenig am 22 Februar 2026, 11:51:42
Zitatpassibe (DANKE!) hatte mir gestern noch souffliert:
Waere das nicht ein Grund das Thema dahin zu verschieben, wo auch andere mitreden koennen?
Ist meiner Ansicht nach jetzt wirklich kein Thema nur fuer Entwickler.

Gemacht.

Und hier gibt es dann die Anwendung dazu: [Contrib] GIFTV (Geek Magic Ultra) als Anzeigegerät für FHEM
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!