2013-03-21 1 views
3

TWebModule에 간단한 DataSnap REST 서버가 있습니다. "/ upload_file"경로에서 POST 요청을 수신하는 작업이 추가되었습니다.TWebResponse가 내 게시 된 파일을 구문 분석하지 않습니다.

procedure TWebModule.WebModulePostFileAction(Sender: TObject; 
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 
var i: Integer; 
    str: String; 
begin 
    for i :=0 to Request.Files.Count-1 do 
    Begin 
    Str:= Str +','+ Request.Files.Items[i].FileName; 
    // I will like to save or move the uploaded file to i.e. c:\myFiles\ 
    End; 
    Response.Content:= Str; 
end; 

Request.Files.Count는 항상 0입니다,하지만 난 Request.content 개체를 검사 할 때, 나는 다중 파일 내용을 볼 수있는 다음의 OnAction 이벤트에 나는이 코드를 가지고있다. 요청에서 게시 된 파일을 어떻게 가져올 수 있습니까? 디스크에 저장하십시오. 내가 좋아하는 외모를 게시 해요 곳에서
내 HTML 양식 :

<form action="/upload_file" method="POST" enctype="multipart/form-data"> 
    Notes: <input type="text" name="notes"/> 
    File: <input type="file" name="my_file"/> 
    <input type="submit" value="Submit"> 
</form> 

불행하게도이 주제에 대한 더 많은 정보를 원하시면, 나는 시간이 아닌 성공을 위해 많은 일을 시도되지있다. 미리 감사드립니다.

+0

xxm은 multipart/form-data 파일 업로드를 기본적으로 처리 할 수 ​​있으며 다른 요청 (http://xxm.sourceforge.net/)에서 업로드 진행률을 읽을 수도 있습니다. https://sourceforge.net/p/xxm/code/HEAD/tree/trunk/Delphi/demo2/09 % 20Upload % 20Progress/ –

+0

불행히도 내 프로젝트는 DataSnap을 사용하고 업로드를 처리하기 위해 또 다른 앱을 작성하며, 기존 프로젝트를 훨씬 복잡하게 만듭니다. 계획. 조언 tho을위한 감사합니다. –

답변

0

관련 질문 TIdHTTPServer file upload를 참조 https://stackoverflow.com/a/6197138/80901 답변 :

TIdHTTPServer 현재 제출 기본적으로 다중/폼 데이터를 지원하지 않습니다. 그 동안 Indy 11의 할 일 목록에 있습니다. 한편 에서 mjn이 제안한대로 TIdDecoderMIME을 사용하여 게시 된 MIME 데이터를 수동으로 구문 분석해야합니다. 이전에 엠바 카데로 및 인디 포럼에 게시 된 예제가 입니다.

+0

저는 Indy가 아니라 DataSnap을 통해 이것을 처리 할 방법을 찾고 있습니다. TIdDecoderMIME을 사용하여 데이터를 구문 분석하는 것이 좋습니다. 나는 계속 노력할 것이고 나는 물건을 계산할 경우에 대비하여 코드를 게시 할 것이다. 대답 tho 주셔서 감사합니다. –

+0

IIRC DataSnap은 내부적으로 Indy를 사용하므로 DataSnap이이 누락 된 기능을 어떻게 든 구현하지 않는 한 링크 된 해결 방법은 옵션입니다 – mjn