2014-07-21 2 views
0

THTTPSendEx 라이브러리를 사용하여 파일을 업로드하려고합니다.시냅스를 사용하여 서버에 파일을 업로드하는 방법

내 코드 :

procedure TForm1.Button1Click(Sender: TObject); 
var 
HTTP:THTTPSendEx; 
Data:TMultipartFormDataStream; 
sHTML:string; //Recived HTML code from web 
begin 
if OpenDialog1.Execute then 
begin 
HTTP:=THTTPSEndEx.Create; 
Data:=TMultipartFormDataStream.Create; 
try 
    Data.AddFile('myFile', OpenDialog1.FileName); 
    Data.DataEnd; 
    if HTTP.Post('http://kaon.rghost.ru/files',Data,sHTML) then 
    begin 
    //Connection established 
    //Check HTTP response 
    if HTTP.IsSuccessfull then //HTTP returns "200 OK" code. 
    begin 
    ShowMessage('File successfully posted to the server.'); 
    end; 
    end else 
    begin 
    ShowMessage('Can not establish a connection to the server...'+#13+'Network is not avaliable or server socket does not exist.'); 
    end; 
finally 
    FreeAndNil(HTTP); 
    FreeAndNil(Data); 
end; 
end; 
end; 

하지만 아무것도 인쇄합니다. 어떤 문제가 발생했는지 알려주시겠습니까? PHP를위한

근무 예 : 내가 나쁜 번역 미안 해요

, 나는 구글 Translater에게

UPDATE 사용

$ url = 'http://kaon.rghost.ru/files'; 
$ FILENAME = 'add.png'; 

$ files = array ('file' => '@'. $ FILENAME); 
   
$ useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.0.3) Gecko/2008092417 Firefox/3.0.3'; 

   $ ch = curl_init ($ url); 
   curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ("Content-type: multipart/form-data")); 
   curl_setopt ($ ch, CURLOPT_HEADER, 1); 
   curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); 
   curl_setopt ($ ch, CURLOPT_USERAGENT, $ useragent); 
   curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ files); 
   $ response = curl_exec ($ ch); 

   echo $ response; 
+0

디버거에서 코드를 단계별로 실행 해 보았습니까? 당신이 할 때 어떻게됩니까? –

+0

아니요, 시도하지 않았습니다. 코드는 여기에서 가져 왔습니다. http://stackoverflow.com/questions/11471513/how-to-send-a-file-and-other-post-data-with-synapse – Muhammad

+0

귀찮게 할 수 없다면 자신의 문제를 해결하기 위해 노력하기 위해 왜해야합니까? 또한 게시 한 PHP 코드는 전적으로 불필요하며 Delphi 질문과 관련이 없습니다. –

답변

0

파일 게시가, 어떤 웹 사이트가 필요 쿠키와/또는 게시물 매개 변수 및/또는 파일의 유효한 입력 필드 이름. 파일을 서버에 게시하는 데 필요한 최소값입니다.

예제를 복사하여 URL을 붙여넣고 파일을로드하십시오. 아니,이 작동하지 않았다.

코드에 파일을 게시하는 데 rghost.ru에서 필요하지 않은 것이 없습니다.

+2

아니요, 쿠키는 여기에 필요하지 않습니다. 내 PHP 스크립트는 문제없이 파일을 업로드 할 수 있습니다. 위의 코드를보십시오. kotryj – Muhammad

+0

다시 말하기 : 당신은하지 않았습니다. 그것을 코딩하기 전에 웹 사이트를 탐색하십시오. 파일이있는 입력 필드의 이름은 "choose" – AlexLL

+0

입니다.이를 조사하고 업로드 PHP를 실행하는 스크립트를 작성했습니다. file (필드 이름 - "file")과 token (필드 이름 - "authenticity_token")의 두 값만 보내야합니다. 두 번째 매개 변수는 선택 사항이며 업로드하지 않으면 성공적으로 업로드됩니다. – Muhammad