EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 6명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·Sorting Algorithm Animation (2)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

neon file upload
글쓴이: EzDoum 글쓴날: 2012년 11월 05일 오후 02:05
리눅스



libneon으로 세트의 http 모듈을 래핑해서 사용중인데, 파일 업로드를 해야하는 경우가 생김.
libneon이 직접적으로 파일 업로드 하는 기능은 제공하지 않지만,
http 멀티파트 스펙으로 헤더와 FD를 따와서 Write를 하면 업로드도 쉽게 구현된다.

http://lists.manyfish.co.uk/pipermail/neon/2009-March/000987.html

Quote:
Henrik Holst henrik at witsbits.com
Thu Mar 19 04:23:38 EDT 2009
Previous message: file upload with post
Next message: NE_AUTH_NEGOTIATE only for https?
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
son 2009-03-15 klockan 23:41 +0100 skrev Karl Hiramoto:
> Joe Orton wrote:
> > On Thu, Mar 12, 2009 at 04:18:26PM +0100, Karl Hiramoto wrote:
> >
> >> Is there anyone out there that has some example code of how to do a file
> >> upload with post. I've used neon before to do some http GET, but not
> >> post.
> >>
> >
> > If you wish to simply use a file as the POST request body, given an open
> > fd for the file, try:
> >
> > ne_request *req = ne_request_create(sess, "POST", path);
> >
> > ne_set_request_body_fd(req, fd, 0, <length-of-file>);
> >
> > ret = ne_request_dispatch(req);
> > // check for errors from ret
> >
> > ne_request_destroy(req);
> >
> > Regards, Joe
> I'm not sure if this is what i want, maybe i didn't ask the question
> correctly. I need something that will upload to a multipart/form-data
> content type.
>
> One thing that was not clear to me from the man page of
> ne_set_request_body_fd() is if i would be able to set the
> multipart/form-data boundry=abcd, and how to separate the different parts.

AFAIK there is no simple interface for this in neon, so you will have to
encode the body manually. That is you will have to read the file and
create a new file where you write out the data in the format that
form-data expects:

--abcd
content-disposition: form-data; name="field1"

[data for field1]
--abcd
content-disposition: form-data; name="field2"

[data for field2]
--abcd
content-disposition: form-data; name="filedata"; filename="filename"
Content-Type: [mime type]
Content-Transfer-Encoding: binary

[the binary data of the file to upload]
--abcd--

Of course changing the names of the fields etc as your form needs. And
then you will have to POST that new file and add the header:
Content-Type: multipart/form-data, boundary=abcd

However it is not possible to add custom headers to the basic functions
so you will have to create a manual request, like this if you could hold
the whole of the new file in memory:

ne_request *req = ne_request_create (session, "POST", "[your URL]");

ne_add_request_header (req, "Content-Type:", "multipart/form-data,
boundary=abcd");

ne_set_request_body_buffer (req, buffer, len-of-buffer);
int ret = ne_request_dispatch (req);

ne_request_destroy (req);

To send the file from disk use the ne_set_request_body_fd() function
instead of ne_set_request_body_buffer().

Hope this helps.

/Henrik Holst
Witsbits AB



  • 관련 링크
  • [분류: 리눅스 인쇄용 페이지 본문 email로 보내기 ]

    <  TCP retransmission(재전송)에 관해 | 부팅속도 개선을 위한 도구  >

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 리눅스
    최근글
    최근글
    가장 많이 읽은 글
    ·멀티쓰레드(Pthread) 프로그래밍 (0)
    뜨거운 감자
    ·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum