アプリ版:「スタンプのみでお礼する」機能のリリースについて

html + CGI などで、
form を使いパソコン内のファイルをサーバーなどにアップロードできますが、
その際、HTMLなどの form からではなく、
独自に作ったプログラムから form と同様のリクエストを送り、
サーバー上にファイルをアップロードしたいのですが、
どのようにすればよいのでしょうか?

独自のプログラムは、本来のformがあるページとは違うドメイン
もしくはローカルパソコンから実行するものとします。
言語は何でもかまいません。

A 回答 (2件)

#!/usr/bin/perl


use strict;
use warnings;
use LWP;
use HTTP::Response;
use HTTP::Request;
use HTTP::Request::Common;

use constant UPLOAD_CGI => 'http://localhost/cgi-perl/CGI.pm/upload.cgi';
use constant REFERER => 'http://localhost/';

my $file = 'upload_file';
my $ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0');
$ua->timeout(10);

my $req = POST(
UPLOAD_CGI,
Content_Type => 'form-data',
Content => [
upload_file => [$file],
submit => 'Upload'
],
Referer => REFERER
);

my $res = $ua->request($req);
$res->is_success or die UPLOAD_CGI, ": ", $res->message, "\n";
    • good
    • 0
この回答へのお礼

ヒントになりました。
ありがとうございます。

お礼日時:2009/12/13 04:21

windowsでしたら、ftpを使うと良いのでは?


CGIを使うと、送られてきたデータを処理して同じサーバーの指定された場所に書き込むのです。
 HTMLとかCGIとかは重要ではなく、HTTPで接続してデータの交換を行っていると考えたほうが理解しやすいでしょう。
 HTTP自体は、あくまでデータの転送方法ですから、HTTPでデータを送られたら指定されたプログラムが指定された処理を行っている。
 ところが、HTTPを使わずにサーバーと接続してデータを送るとなると、最も簡単ななのはFTPでしょう。
 インターネットではFTPやMailはHTTPよりも歴史の古い伝統的な方法です。
 ftpコマンドを使ったファイル転送方法 ( http://www.cc.u-tokai.ac.jp/FAQ/PC/ftp-command/f … )
FTPコマンドでファイル転送する ( http://win.kororo.jp/archi/www/ftp_command.php )

 直接コマンドプロンプトから実行するのが確実で簡単なのですが、コマンドプロンプトを使い慣れてなければ、MS-DOSだろうが、VBだろうが、Perlだろうが、これを使ってFTPをあつかう。
 もっと基本的なところからなら
 Winsockをつかってプログラムを開発する?
Winsock - Wikipedia ( http://ja.wikipedia.org/wiki/Winsock )
Windows ソケット ( http://wisdom.sakura.ne.jp/system/winapi/winsock … )
ソケットプログラミング ( http://www.katto.comm.waseda.ac.jp/~katto/Class/ … )
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!