Как отправить файл через POST?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _nic, 11 Dec 2008.

  1. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Что то ничего немогу найти в гугле по этому поводу ,только все про авторизацию находит и все :( А как файл с помощью сокета по хттп протоколу передать найти немогу :( Может кто нибудь подскажет как надо правильно сформировать запрос?
     
  2. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    Вроде поможет
     
  3. WAR!9G

    WAR!9G Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    112
    Likes Received:
    89
    Reputations:
    1
    Если не ошибаюсь, в мою то молодость было так:
    Code:
     try
        Stream := TIdMultipartFormDataStream.Create;
        Stream.AddFile('filename', 'C:\porno.jpg', 'image/jpeg');
        s:=idhttp1.Post('http://www.site.com/upload.php',Stream);
      except
      end;
      zap.Free;
     
  4. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Мне инди не подходит.К тому же на bds 2006 оно кривое и непашет :mad:
     
  5. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Тогда юзай WinSock.
    Снифаешь какой нить запрос(например заливка файла куда нить), смотришь что как почем, а дальше дело прямых рук...
     
    1 person likes this.
  6. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    http://www.ietf.org/rfc/rfc1867.txt
     
  7. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    А чем снифать то?А то лью файл на рапиду,смотрю в навископе а там ПОСТ запрос и рядом нигде не валялся :(
     
  8. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    каким браузером пользуешься?
     
  9. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Оперой
     
  10. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Гружу файлы на рапиду си смотрю в навископе там где по идее должен быть ПОСТ такие вот непонятные заголовки
    Code:
    HTTP/1.0 200 OK
    P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
    Date: Fri, 12 Dec 2008 13:27:46 GMT
    Connection: close
    Accept-Ranges: bytes
    Content-Type: text/html; charset=ISO-8859-1
    Cache-Control: no-cache
    Content-Length: 8378
    
    HTTP/1.0 200 OK
    P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
    Date: Fri, 12 Dec 2008 13:27:47 GMT
    RemovedHdr: close
    Accept-Ranges: bytes
    Content-Type: text/html
    Expires: Fri, 12 Dec 2008 13:57:47 GMT
    Removed-Header: 3549
    
    
    Особенно меня смущает эта строка :confused:
    Code:
    P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
    
    Кто нибудь знает что эта чепуха вообще обозначает?
     
  11. Dobby007

    Dobby007 Elder - Старейшина

    Joined:
    7 Sep 2008
    Messages:
    52
    Likes Received:
    16
    Reputations:
    1
    На рапиду значит говоришь? Ну вот че выдает HttpAnalyzer при заливке туда файла с оперой:
    Code:
    POST /cgi-bin/upload.cgi?rsuploadid=150750792611358172 HTTP/1.1
    User-Agent: Opera/9.51 (Windows NT 5.1; U; ru)
    Host: rs244l3.rapidshare.com
    Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    Accept-Language: ru,en;q=0.9,ru-RU;q=0.8
    Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
    Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
    Expect: 100-continue
    Referer: http://rapidshare.com/
    Connection: Keep-Alive, TE
    TE: deflate, gzip, chunked, identity, trailers
    Content-Length: 299754
    Content-Type: multipart/form-data; boundary=----------kXaflTq9SkBiH1m0Fi9gAw
    
    ------------kXaflTq9SkBiH1m0Fi9gAw
    Content-Disposition: form-data; name="filecontent"; filename="owned_r.gif"
    Content-Type: image/gif
    
    GIF89a
    
    
    
    zЈkЏYvG]0Ta/IQ{~|opke>zRBђr!¤f•\ЉTЂOsFZ7O-…Z"†`F*:#,’b\:'`<
    .........................................
    
    ------------kXaflTq9SkBiH1m0Fi9gAw
    Content-Disposition: form-data; name="u.x"
    
    28
    ------------kXaflTq9SkBiH1m0Fi9gAw
    Content-Disposition: form-data; name="u.y"
    
    58
    ------------kXaflTq9SkBiH1m0Fi9gAw--
    Вместо точек только продолжение контента файла... Так что Ничего здесь противоестественного нет ;)
    Щас только что увидел... Вот то что ты как раз написал про "непонятные заголовки" это есть уже ответ сервера (рапиды) на твой пост-запрос:
    Code:
    HTTP/1.1 200 OK
    P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
    Date: Fri, 12 Dec 2008 13:46:42 GMT
    Connection: close
    Accept-Ranges: bytes
    Content-Type: text/html; charset=ISO-8859-1
    Cache-Control: no-cache
    Content-Length: 14986
     
    #11 Dobby007, 12 Dec 2008
    Last edited: 12 Dec 2008
  12. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Пытаюсь слать на такой скрипт
    Code:
    <?php
    
    $uploaddir = '/localhost/www/';
    
    $uploadfile = $uploaddir . basename($_FILES['filecontent']['name']);
    
    move_uploaded_file($_FILES['filecontent']['tmp_name'], $uploadfile);
    
    exit();
    
    ?>
    
    Запрос выглядит так
    Code:
    POST http://localhost/file.php HTTP/1.0
    User-Agent: Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1
    Host: localhost
    Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
    Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
    Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
    Expect: 100-continue
    Proxy-Connection: Keep-Alive, TE: deflate, gzip, chunked, identity, trailers
    Content-Length: 81651
    Content-Type: multipart/form-data
    Content-Disposition: form-data; name="filecontent"; filename="owned_r.txt"
    Content-Type: text/html
    
    DATA0
    M```0````(`#``0`"`0`1'@`.,C`Y+C@U+C#R.2XQ,S($`-D0``9?7W5T;7H1
    M`+<R-C8R-34W-38N,3(R.$@S-CDP.2XR+C,N=71M8W-R/6=O;V=L97QU=&UC
    M8VX]*&]R9V%N:6,I?'5T;6-M9$UO<F=A;FEC?'5T;6-T<CTE1$`E0C,E1$`E
    M0C0E1$`E0C4E,C!Q:7`E,C`E1$#E.$4E1$#E.$`E1$`E0C`E1$`E0D0E1$`E
    M0C@E1$#E.$(E,C`E1$`E0D8E1$`E0C`E1$#E.$`E1$`E0D4E1$`E0D(E1$`E
    M0C@E,T82``@`````2B\I[!,`"`````!)/I`L`P!6#``&7
    ................................................................
    
    Только вот файл не загрузился :( Что я мог не доглядеть?
    Хм изучаю сейчас то что выдал HttpAnalyzer .На вкладке PostData почему то пусто.Видать я допусти какую то ошибку при формировании запроса.Но вот какую :confused:
     
    #12 _nic, 13 Dec 2008
    Last edited: 13 Dec 2008