2011-05-04 5 views
3

나는 Perl 스크립트에 $에 fname 파일의 경로입니다 LWP 해당 UserAgent 모듈Perl이 zip 파일을 base64로 보내라고 요청합니까?

my $req = POST $url, Content_Type => 'form-data', 
    Content  => [ 
     submit => 1, 
     upfile => [ $fname ] 
    ]; 

와과 같이 zip 파일을 보내려고합니다. 서버 측에서는 POST 배열에 "제출"만있는 것으로 보입니다. 파일을 base64로 인코딩하여 변수에 할당해야합니까? 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

+0

는 서버 측 스크립트의 코드를 게시하시기 바랍니다, 나는이 표시되지 않습니다 위의 코드 문제로 인해 파일 데이터를 제대로 가져 오지 못했다고 생각됩니다. – Roger

답변

2

파일 이름을 확인할 수 있는지 확인하십시오. 그래도 될 수 없다면 오류가 발생합니다. 적어도 HTTP::Request::Common 내 버전에서 않습니다.

이진 내용을 Base64로 인코딩 할 필요가 없습니다. (물론, 서버 측 응용 프로그램은 해당 형식을 기대하는 일,하지 않는 한.)

여기에 완전한 샘플 스크립트입니다 :

use strict; 
use warnings; 
use LWP::UserAgent; 
use HTTP::Request::Common 'POST'; 

my $ua = LWP::UserAgent->new; 
my $url = 'http://localhost:8888'; # Fiddler 
my $req = POST $url, 
    Content_Type => 'form-data', 
    Content => [ 
     submit => 1, 
     upfile => [ 'C:\temp\bla.zip' ], 
    ]; 
my $line = '=' x 78 . "\n"; 
print $line, $req->as_string; 
my $rsp = $ua->request($req); 
print $line, $rsp->as_string; 
+0

아아 나는 $ _POST 배열에 파일을 제출할 것을 기대하고 있었기 때문에 뭔가 잘못되었다고 생각하지 않았을 때 $ _FILES ARRAY에 감사하다는 것을 알았다. – user391986