2014-07-22 6 views
0

사용자가 모바일 장치에서 웹 서버로 이미지를 게시 할 수있는 응용 프로그램을 만들려고합니다. 나는 며칠 동안 이것을하려고 노력해 왔으며 XE6을 사용하여 그것을하는 방법을 찾지 못했습니다 ... 아무도 단서가 있습니까?Delphi XE6 이미지 모바일에서 서버로 업로드

RestClient 라이브러리를 사용해 보았지만 나머지 요청에서 이미지에 매개 변수를 첨부하는 방법을 찾을 수 없습니다. 최근 시도는 다음과 같습니다. -

서버 측의 file 매개 변수는 아무것도 나오지 않습니다.

또한 IdHttp 구성 요소에서 MultiPartFormDataStream을 사용해 보았지만 파일 이름이 AddFile 메소드에 의해 예상됩니다 ... 카메라에서 이미지를 가져 오는 중 파일 이름이 없기 때문에 나도 당황하게했습니다. 그리고 그 중 하나의 매개 변수 중 하나에 스트림을 연결하는 방법을 찾을 수 없습니다.

또한 IDHTTP를 사용하여 PHP 서버 인 서버로 직접 스트림을 게시하려고 시도했지만 요청에 일반 HTTP 헤더 이외의 데이터가 포함되지 않았습니다.

미리 도움을 청하십시오.

답변

2

인디와 함께 HTML 양식 필드로 스트림을 업로드하려면 TIdMultiPartFormDataStream. AddFormField을 사용해야합니다.

다른 필드도 전달할 수 있습니다.

uses IdHTTP, IdMultipartFormData; 

var 
    http: TIdHttp; 
    multiStream: TIdMultiPartFormDataStream; 
begin 
    multiStream := TIdMultiPartFormDataStream.Create; 
    try 
    multiStream.AddFormField('field1', 'image/jpeg', '', sourceStream, 'image1.jpg'); 
    multiStream.AddFormField('field2', 'value2'); 

    http := TIdHttp.Create(nil); 
    try 
     http.Post(url, multiStream); 
    finally 
     http.Free; 
    end; 
    finally 
    multiStream.Free; 
    end; 
end; 

파일 이름 매개 변수는 선택 사항이며 PHP's$_FILES['field1']['name']에 저장됩니다.

관련 문제