zoukankan      html  css  js  c++  java
  • perl post 上传文件

    ###列出组信息
    use  LWP::UserAgent; 
    use LWP;
    use Encode;
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Cookies;
    use HTTP::Headers;
    use HTTP::Response;
    use Encode;
    use URI::Escape;
    use URI::URL;
    use JSON;
    use Data::Dumper;
      if ( $#ARGV < 3 ){  
            print "please input your  username password  file repo_id!
    ";
    		print "just like 015208  1234567   aa.txt  'a3333a72-bb7f-477a-a7ed-7b05b029a9b9' ";
            exit(-1);
    		};
      my $username=$ARGV[0];
      my $password=$ARGV[1];
      my $file=$ARGV[2];
      my $repo_id=$ARGV[3];
      my $ua = LWP::UserAgent->new;
      $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
      my $cookie_jar = HTTP::Cookies->new(
         file=>'lwp_cookies.txt',
         autosave=>1,
         ignore_discard=>1);
         $ua->cookie_jar($cookie_jar);
       my $token_url= 'http://10.5.100.241:8000/api2/auth-token/';
                    
      
       my $res = $ua->post($token_url,
                    {
                    'username'=>"$username@zjtlcb.com",
                    'password'=>"$password"
                    });
       print $res->content();
       print "
    ";
       my $r= $res->content();
       my $r=encode_utf8($r);
       my $hash = decode_json($r);
       my $token =$hash->{"token"};
       print "$r is $r
    ";
      
       @header = (  
        'accept'=> "application/json",  
        'content-type'=> "application/json",  
        'Authorization'=> "Token $token" 
        );  
    	#GEThttps://cloud.seafile.com/api2/repos/{repo-id}/upload-link/
        #curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" https://cloud.seafile.com/api2/repos/99b758e6-91ab-4265-b705-925367374cf0/upload-link/
        $host="http://10.5.100.241:8000/api2/repos/$repo_id/upload-link/";  
        $request = HTTP::Request->new(GET=>"$host");  
        $request->header(@header);  
      
        $response = $ua->request($request);  	
        #print $response->decoded_content;  
        
    	my $upload_link=$response->decoded_content;
    	#$upload_link =~ s/upload-api/upload-aj/;
    	chomp $upload_link;
    	print $upload_link;
    	print "
    ";
        #curl -H "Authorization: Token 262a8daefa5eb52ea5eaf71688965843b7b0ad20" -F file=@aa.txt -F filename=aa.txt -F parent_dir=/ http://10.5.100.241:8082/upload-api/e0f952df-53dd-4f6d-b803-ae3df1f6c561
    	
    	
    	my $url=$upload_link;
        my $res = $ua->post($url, 
    	 
        'content-type'=> "form-data",	 
        'Authorization'=> "Token  $token" ,
    	#Content =>[pageAction='upload',filename =>['aa.txt']]
    	#Content =>[parent_dir=>"/",filename =>["D:\api\scripts\aa.txt"]]
    	
    	Content =>[file =>[$file], parent_dir=>'/']
    	
    				);
        print "---------------------------
    ";
        print $res->content(); 
       # print $response->status_line();
       #system("curl -H "Authorization: Token 262a8daefa5eb52ea5eaf71688965843b7b0ad20" -F file=@aa.txt -F filename=aa.txt -F parent_dir=/ http://10.5.100.241:8082/upload-api/c49fdc5e-ab3f-4e2a-968d-46ccfa587683");
    
    
    
    
    	
    
    D:apiscripts>perl get_upload_file.pl 015208 1234567 xx.txt  a3333a72-bb7f-477a
    -a7ed-7b05b029a9b9
    {"token": "262a8daefa5eb52ea5eaf71688965843b7b0ad20"}
    $r is {"token": "262a8daefa5eb52ea5eaf71688965843b7b0ad20"}
    "http://10.5.100.241:8082/upload-api/8f3e38e9-5cd6-4954-809f-df29ee1cecf2"
    ---------------------------
    0000000000000000000000000000000000000000
    D:apiscripts>
    
    
    a3333a72-bb7f-477a-a7ed-7b05b029a9b9---------tailong
    301ccb82-827b-46e4-80aa-178aad7d46e9---------scan
    47694e3a-0969-4dbc-bb1c-935dd46b3cc8---------赵杨健
    87cc2996-cc2e-4b8b-8d48-5896da24654b---------My Library
    301ccb82-827b-46e4-80aa-178aad7d46e9---------scan

  • 相关阅读:
    ant 软件包不存在报错
    在 Internet Explorer 中使用 Windows 窗体控件
    智能客户端
    Back to the Future with Smart Clients
    "Automation 服务器不能创建对象" 的解决方案
    Top 10 Reasons for Developers to Create Smart Clients
    Updater Application Block for .NET
    Smart Client Application Model and the .NET Framework 1.1
    Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    智能客户端技术总结(二)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349904.html
Copyright © 2011-2022 走看看