アップローダを作成しています。
しかしなぜか受け取る側の.plでファイルが見つからず、開けません。
HTMLと.plのソース付けときますので間違えの指摘お願いします
<table border="0">
<form action="./UpShori.pl" method="post">
<tr><th><Div Align="right">アップするファイル</th><th><Div Align="left"><input type="file" name="file" size="39"></th></tr>
<tr><th><Div Align="right">ファイルの説明</th><th><Div Align="left"><input type="text" name="setumei" size="50" maxlength="45"></th></tr>
</table><br>
<input type="submit" value="アップロード">
--受け取るUpShori.pl---
#!c:/Perl/bin/Perl.exe
print"Content-type: text/html\n\n";
$Data;
@DataBunkai;
$UpFileName;
@UpFileData;
read(STDIN,$Data,$ENV{'CONTENT_LENGTH'});
@DataBunkai = split("=","$Data");
@DataBunkai = split("&","$DataBunkai[1]");
$UpFileName=$DataBunkai[0];
# ここで”ファイルがありません”と出力される
open(READ,"<","$UpFileName") or die print"ファイルがありません";
@UpFileData=<READ>;
close(READ);
# ↓の生成されるファイル名は気にせずお願いします。
open(WRITE,">","0000");
print WRITE"@UpFileData";
close(WRITE);
print<<End_Of_Program;
End_Of_Program
No.1ベストアンサー
- 回答日時:
こんにちは、
アップロードを行うCGIを書く際に、
どうしても使用できない場合以外、
CGI.pm もしくは類似のモジュールを使用せずに書くのは、
時間の無駄でしょう。
以下のURLのページを参考にして下さい。
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod
(CGI.pm の日本語PODです。)
あわせて、googleにて"Perl アップロード"で検索したら、トップにきたページです。
http://www.ss.iij4u.or.jp/~somali/web/_perl_uplo …
丁寧に詳しく書いてあるので参考になると思います。
でも、アップロードには色々とセキュリティ的な問題があるので、
十分に吟味してください。
No.2
- 回答日時:
とある自分の答えの使いまわしで悪いのですが……。
<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]がないと、正常に動きません。実行してないので分かりませんが、もしJIF0131さんのソースでアップロードできるとしても、あの一文が書かれてないので、絶対にファイルは見つかりません。
ここからソースです。
use CGI;#CGIモジュール使用宣言
$query = new CGI;
$file =$query->param('file');#デコード。
#$変数 = $query->param(フォームパーツの名前);で読み込める
$newfile="0000";#ファイル名。今回は0000
open(FILE, ">$newfile") || die "error";
binmode(FILE);#アスキー以外のバイナリデータの場合必要
binmode(STDOUT);#アスキー以外のバイナリデータの場合必要
while (<$file>) {print FILE $_;}
close(FILE);
これが多分一番楽かと思われます。ただ、ファイルの作成と言うのは、いろいろと内容によって大変なので、がんばってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAコードを張り付け後のエクセ...
-
MATLABのm-fileについて
-
文字列をカウントする方法
-
csvファイルの横方向への改行に...
-
フォルダ内のファイルを全て開...
-
WindowsでPerlをする際,1行目の...
-
AutoNts
-
並び方、
-
バッチファイルの作り方(CSV→...
-
batファイルでrenameができませ...
-
close()で例外が投げられる理由
-
vba dir の相対パス
-
至急お願いします。C言語で.img...
-
一定時間が経過したフォルダの削除
-
JavaでCSVファイルを高速に読む...
-
画像アップロード機能を追加し...
-
Perlで特定行から特定行までを...
-
【エクセル】改行無しテキスト...
-
perlのエディタでおすすめを教...
-
PICでFatFsでオープンした内容...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
python renameについて
-
VBAコードを張り付け後のエクセ...
-
ファイルの存在の有無を確かめ...
-
行を指定して削除する方法PERL
-
VBA テキストファイルを読み取...
-
ファイル全てを .xlsm に変更し...
-
Firefox で file:// で始まる U...
-
fgets で値が取得できない
-
perl ファイルが開かない
-
MATLABのm-fileについて
-
Perl の「stringify」の意味に...
-
PerlでのUseless use...
-
JSP URLに表示される拡張子 .jsp
-
巨大なテキストの最終行を取得...
-
複数ファイルを1つにするシェ...
-
drtファイルはどうしたら開...
-
fopen64について
-
perlで画像をダウンロードしよ...
おすすめ情報