No.2ベストアンサー
- 回答日時:
楽なのは、CGIというモジュールを使ってやる方法です。
恐らく標準で入ってるはずです。普通にサーバーに設置しても使えました。ここでは、
<form action="CGIアドレス" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="アップロード">
</form>
というHTMLタグでデータを送った場合を仮定します。
ちなみに、formタグの、[enctype="multipart/form-data]がないと、正常に動きません。これはどのスクリプトにおいても必須の条件のはずです。
use CGI;#CGIモジュールの使用
$query = new CGI;
$file =$query->param('file');#デコード。勝手にしてくれます。
#$変数 = $query->param(フォームの名前);が基本ルールです。
$newfile=$file;#ファイル名。別に$fileを使う必要なし
open(FILE, ">$newfile") || die "error";
binmode(FILE);#アスキー以外のバイナリデータの場合必要
binmode(STDOUT);#アスキー以外のバイナリデータの場合必要
while (<$file>) {print FILE $_;}
close(FILE);
これが一番手軽かと。デコードも完璧にモジュールがしてくれます。
ただ、テキストファイルは正常にできない場合もあります。テキストの場合は、ファイルをバイナリモードで開く、binmodeの二行を削除すればいけます。(逆に画像などはこれが必須です。)
ちなみに、自分のパソコンの仮想サーバーで実行すると、CGI何ちゃら~っというアップロードしたファイルと同じものが、どこかに作成されますが、それは一時ファイルですので、削除すればいいと思います。
No.1
- 回答日時:
そういうときは
「Perl CGI ファイル アップロード」
というキーワードで検索するとよいですよ。
ここの回答にまとめられるほど簡単な話じゃないですし、よくまとまったサイトはたくさんありますのでそちらを参考にしてください。
この回答への補足
ありがとうございます。
とりあえずYahoo,google等で検索してみると、
コード等を載せているサイトは結構ありましたが、
どれも動かなかったり正常に動作しなかったりして
有力な情報が手に入らない状態です。
解説しているサイトなどあれば紹介して頂きたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(IT・Webサービス) WPからダウンロードしたファイル名を指定したい 2 2022/04/08 08:31
- Google Drive Googleドライブについて 3 2023/08/06 12:19
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- Google Drive グーグルドライブ、勝手に共有されるのを防ぐ方法や気をつけること 2 2023/07/29 21:47
- その他(クラウドサービス・オンラインストレージ) iPadとWinPC間でファイルの共有と同期化の方法を教えてください。 2 2022/07/23 11:59
- ホームページ作成・プログラミング FTPでPDFファイルだけが転送できません。 2 2022/07/18 07:32
- その他(セキュリティ) PDFファイルのパスワード設定について 1 2022/06/25 10:10
- その他(クラウドサービス・オンラインストレージ) iPadとクラウドの同期はできないですか? 1 2022/05/21 09:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Firefox で file:// で始まる U...
-
巨大なテキストの最終行を取得...
-
【C++/CLI】ファイルオープンに...
-
重複ファイル名ある場合ファイ...
-
drtファイルはどうしたら開...
-
window.open でのファイル指定方法
-
MP3情報の表示
-
python renameについて
-
perlでMail::Mbox::MessagePars...
-
fgets で値が取得できない
-
ランダムスクリプトに時間要素...
-
VBAでCSVファイルの特定行を書...
-
VBAでCSVファイルを途中行まで...
-
batファイルでrenameができませ...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
ファイル出力の改行コードをLFに
-
Perlの変数に文字数制限(容量...
-
fopenでディレクトリ内の全ファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python renameについて
-
fgets で値が取得できない
-
window.open でのファイル指定方法
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
read() on unopened filehandle...
-
csvファイルの横方向への改行に...
-
VBAコードを張り付け後のエクセ...
-
Firefox で file:// で始まる U...
-
JSP URLに表示される拡張子 .jsp
-
drtファイルはどうしたら開...
-
重複ファイル名ある場合ファイ...
-
並び方、
-
VBA テキストファイルを読み取...
-
cgiでサーバーにファイルを追加...
-
HTMLのフォームで画像と文...
-
WindowsでPerlをする際,1行目の...
-
バイナリファイルの出力
-
Perlでのパーミッション変更の仕方
-
foreach内での変数の扱い?
おすすめ情報