PythonでCGI経由でファイルアップロード
Webベースで記事作ったりサイトデザインしたりしていると、多量のファイルをアップロードする機会も多々あるのでファイルを自動アップロードするスクリプトを書きたい、という話。
とりあえずググったら「 残高照会メモ: pythonでアップロード 」が出てきたのだが、自前でMIMEエンコーディングしなきゃいけないのがちょっとアレだ。
ちなみにPerlだと下記のような感じでいける。
sub post_attachment { my $self = shift @_; my %args = @_; my $file_name = $args{file}; # filename my $url = "アップロード先URL"; my $ua = LWP::UserAgent->new( 'agent' => "適当なUserAgent文字列", ); my $req = HTTP::Request::Common::POST $url, Content_Type => 'form-data', Content => [ file_content => ["$file_name"], description => "", op => "addFileForStory", # form "op"の値 sid => $sid, # form "sid"の値 Submit => "Submit", # form "Submit"の値 ]; my $resp = $ua->request( $req ); if( $resp->is_error ) { return 0; #print "upload $file_name: failed.\n"; } else { return 1; #print "upload $file_name: succeed.\n"; } }
これをPythonでやりたい。ということで続く。