Fileupload via POST

  • Ich möchte also ein beliebiges File automatisiert hoch laden den Link dazu per Mail auf mein Tablet senden.

    Nach längerem suchen hab ich den Hoster anonfiles gefunden der gratis ist und auch grosse files (~150mb) zulässt.

    AGBs gibts hier https://anonfiles.com/terms und eine API hier https://anonfiles.com/api/help scheint also erlaubt/erwünscht zu sein

    [autoit]


    #include <WinHTTP.au3>
    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0")
    $hConnect = _WinHttpConnect($hSession, "anonfiles.com")

    [/autoit][autoit][/autoit][autoit]

    Dim $aFields[2][3] = [["file", "",@ScriptDir & "\test.txt"],["filename", "test.txt"]]
    Dim $aFields[1][3] = [["file", "",@ScriptDir & "\test.txt"]]
    ;_ArrayDisplay($aFields)

    [/autoit][autoit][/autoit][autoit]

    $aMultiPart = __EncodeMultipartFormData($aFields)
    ;_ArrayDisplay($aMultiPart)
    $sReturn = _WinHttpSimpleRequest($hConnect, "POST", "/api", "", $aMultiPart[1], "Content-Type: multipart/form-data; boundary=" & $aMultiPart[0])
    ConsoleWrite($sReturn & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hSession)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func __EncodeMultipartFormData($aFields)
    #cs Arrayaufbau:
    [x][0] = Name
    [x][1] = Content (normal: "")
    [x][2] = File (normal: "")
    #ce

    [/autoit][autoit][/autoit][autoit]

    Local $sBoundary = StringFormat("%s%.5f", "----BoundaryLine_", Random(10000, 99999))
    Local $sData, $hOpen, $sFile, $aTempArray

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($aFields, 1) - 1
    If $aFields[$i][2] <> '' Then
    $hOpen = FileOpen($aFields[$i][2], 0)
    $sFile = FileRead($hOpen)
    FileClose($hOpen)
    $sData &= "--" & $sBoundary & @CRLF & _
    'Content-Disposition: form-data; name="' & $aFields[$i][0] & '"; filename="' & StringRegExpReplace($aFields[$i][2], ".*\\", "") & '"' & @CRLF & _
    "Content-Type: " & __MIMEType($aFields[$i][2]) & @CRLF & @CRLF & _
    $sFile & @CRLF
    Else
    $sData &= "--" & $sBoundary & @CRLF & _
    'Content-Disposition: form-data; name="' & $aFields[$i][0] & '"' & @CRLF & @CRLF & _
    $aFields[$i][1] & @CRLF
    EndIf
    Next
    $sData &= "--" & $sBoundary & "--"
    Dim $aTempArray[2] = [$sBoundary, $sData]
    Return $aTempArray
    EndFunc ;==>__EncodeMultipartFormData

    [/autoit][autoit][/autoit][autoit]

    Func __MIMEType($sFileName) ;Aus der WinHTTP.au3 :)
    Local $aArray = StringRegExp(__MIMEAssocString(), "(?i)\Q;" & StringRegExpReplace($sFileName, ".*\.", "") & "\E\|(.*?);", 3)
    If @error Then Return "application/octet-stream"
    Return $aArray[0]
    EndFunc ;==>__MIMEType

    [/autoit][autoit][/autoit][autoit]

    Func __MIMEAssocString();Aus der WinHTTP.au3 :)
    Return ";ai|application/postscript;aif|audio/x-aiff;aifc|audio/x-aiff;aiff|audio/x-aiff;asc|text/plain;atom|application/atom+xml;au|audio/basic;avi|video/x-msvideo;bcpio|application/x-bcpio;bin|application/octet-stream;bmp|image/bmp;cdf|application/x-netcdf;cgm|image/cgm;class|application/octet-stream;cpio|application/x-cpio;cpt|application/mac-compactpro;csh|application/x-csh;css|text/css;dcr|application/x-director;dif|video/x-dv;dir|application/x-director;djv|image/vnd.djvu;djvu|image/vnd.djvu;dll|application/octet-stream;dmg|application/octet-stream;dms|application/octet-stream;doc|application/msword;dtd|application/xml-dtd;dv|video/x-dv;dvi|application/x-dvi;dxr|application/x-director;eps|application/postscript;etx|text/x-setext;exe|application/octet-stream;ez|application/andrew-inset;gif|image/gif;gram|application/srgs;grxml|application/srgs+xml;gtar|application/x-gtar;hdf|application/x-hdf;hqx|application/mac-binhex40;htm|text/html;html|text/html;ice|x-conference/x-cooltalk;ico|image/x-icon;ics|text/calendar;ief|image/ief;ifb|text/calendar;iges|model/iges;igs|model/iges;jnlp|application/x-java-jnlp-file;jp2|image/jp2;jpe|image/jpeg;jpeg|image/jpeg;jpg|image/jpeg;js|application/x-javascript;kar|audio/midi;latex|application/x-latex;lha|application/octet-stream;lzh|application/octet-stream;m3u|audio/x-mpegurl;m4a|audio/mp4a-latm;m4b|audio/mp4a-latm;m4p|audio/mp4a-latm;m4u|video/vnd.mpegurl;m4v|video/x-m4v;mac|image/x-macpaint;man|application/x-troff-man;mathml|application/mathml+xml;me|application/x-troff-me;mesh|model/mesh;mid|audio/midi;midi|audio/midi;mif|application/vnd.mif;mov|video/quicktime;movie|video/x-sgi-movie;mp2|audio/mpeg;mp3|audio/mpeg;mp4|video/mp4;mpe|video/mpeg;mpeg|video/mpeg;mpg|video/mpeg;mpga|audio/mpeg;ms|application/x-troff-ms;msh|model/mesh;mxu|video/vnd.mpegurl;nc|application/x-netcdf;oda|application/oda;ogg|application/ogg;pbm|image/x-portable-bitmap;pct|image/pict;pdb|chemical/x-pdb;pdf|application/pdf;pgm|image/x-portable-graymap;pgn|application/x-chess-pgn;pic|image/pict;pict|image/pict;png|image/png;pnm|image/x-portable-anymap;pnt|image/x-macpaint;pntg|image/x-macpaint;ppm|image/x-portable-pixmap;ppt|application/vnd.ms-powerpoint;ps|application/postscript;qt|video/quicktime;qti|image/x-quicktime;qtif|image/x-quicktime;ra|audio/x-pn-realaudio;ram|audio/x-pn-realaudio;ras|image/x-cmu-raster;rdf|application/rdf+xml;rgb|image/x-rgb;rm|application/vnd.rn-realmedia;roff|application/x-troff;rtf|text/rtf;rtx|text/richtext;sgm|text/sgml;sgml|text/sgml;sh|application/x-sh;shar|application/x-shar;silo|model/mesh;sit|application/x-stuffit;skd|application/x-koan;skm|application/x-koan;skp|application/x-koan;skt|application/x-koan;smi|application/smil;smil|application/smil;snd|audio/basic;so|application/octet-stream;spl|application/x-futuresplash;src|application/x-wais-source;sv4cpio|application/x-sv4cpio;sv4crc|application/x-sv4crc;svg|image/svg+xml;swf|application/x-shockwave-flash;t|application/x-troff;tar|application/x-tar;tcl|application/x-tcl;tex|application/x-tex;texi|application/x-texinfo;texinfo|application/x-texinfo;tif|image/tiff;tiff|image/tiff;tr|application/x-troff;tsv|text/tab-separated-values;txt|text/plain;ustar|application/x-ustar;vcd|application/x-cdlink;vrml|model/vrml;vxml|application/voicexml+xml;wav|audio/x-wav;wbmp|image/vnd.wap.wbmp;wbmxl|application/vnd.wap.wbxml;wml|text/vnd.wap.wml;wmlc|application/vnd.wap.wmlc;wmls|text/vnd.wap.wmlscript;wmlsc|application/vnd.wap.wmlscriptc;wrl|model/vrml;xbm|image/x-xbitmap;xht|application/xhtml+xml;xhtml|application/xhtml+xml;xls|application/vnd.ms-excel;xml|application/xml;xpm|image/x-xpixmap;xsl|application/xml;xslt|application/xslt+xml;xul|application/vnd.mozilla.xul+xml;xwd|image/x-xwindowdump;xyz|chemical/x-xyz;zip|application/zip;"
    EndFunc ;==>__MIMEAssocString

    [/autoit][autoit][/autoit][autoit][/autoit]

    Einmal editiert, zuletzt von BiNu (11. August 2013 um 19:53)

  • So hab mal weiter gebastelt

    Jetzt bekomme ich die Meldung {"status":"error","msg":"No input file specified."} kann mir jemand helfen?

    (Script im ersten Post aktualisiert)