![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
read() on unopened filehandle at…というエラーが出て困っています。
Perlで画像ファイルをアップロードしたものをサーバー内のディレクトリに保存するようなものを作っているのですが、ファイルハンドルが開けなくて困っています。
ソースはほぼほぼ以下の通りです。
http://www.jun2065.net/index.php?Perl%B4%D8%CF%A …
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
> #ファイルサイズのチェックを行う
> while($bytesread = read($filename, $buffer, $BUFSZ)){
> $file .= $buffer;
>
> $file_size ++;
> if($file_size > 300){
> exitError("ファイルサイズが大きすぎます。600KB 以下にして下さい。");
> }
> }
...,..
> # ファイルを指定ディレクトリにコピー
> open(OUT, ">$uppath/$upfile") or die "Can't open $uppath/$upfile";
> binmode OUT;
> while (read($filename, $buffer, 1024)) { # Read from $fh insted of $file
> print OUT $buffer;
> }
> #FILEHANDLEのファイルをバイナリモードで扱うようにします。
> #バイナリファイルとテキストファイルを区別しないOSでは何もしません。
> binmode(OUT);
> print(OUT $file);
> close(OUT);
リンクを見てみましたが、2重に読み込んで2重に書き込むようになっているようです。
「ファイルを指定ディレクトリにコピー」の個所の while ループは、特に必要がないの
でコメントアウトしてはどうでしょうか。(CGI.pm のアップファイルの取り扱いについて
詳しくないので、誤っているかも知れません。)
丁寧な回答ありがとうございます。
問題はcgiで$cgi->upload()したものをハンドルして使っていないということだと分かりました。
ありがとうございます。
No.3
- 回答日時:
アップロードする側のhtmlで
<input type="file" name="tUpFile">
という名前にしておく必要がありますが、そこはどうなっていますか?
nameとtypeとあとformの設定もきちんと行われています。
while文ではちゃんとデータが入ったのでハンドル部分の問題でほぼほぼそこも解決しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 任意の置換を互換の積で表すプログラム 4 2022/11/13 19:10
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- 数学 「<マクローリン展開> f(z)=Σ_{n=-∞~∞}a(n)(z-a)^n(ローラン展開の式)より 3 2022/09/01 08:19
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- 数学 任意の置換を互換の積で表すことについて 2 2022/11/07 22:31
- 工学 画像はテイラー展開の公式です。 <マクローリン展開> f(z)=Σ_{n=-∞~∞}a(n)(z-a 1 2022/09/01 22:56
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- DIY・エクステリア 天然石に穴を開けたいです。 硬度5と硬度7ぐらいの石です。 硬度5がおもなので硬度7が難しければ硬度 4 2022/11/14 15:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python renameについて
-
JSP URLに表示される拡張子 .jsp
-
重複ファイル名ある場合ファイ...
-
巨大なテキストの最終行を取得...
-
ファイルの存在の有無を確かめ...
-
window.open でのファイル指定方法
-
perlにおけるファイルコピー方法
-
エクセルVBA コードが同じでも...
-
ExcelをCSV書き出す場合のシー...
-
空白文字 \\f と\\v の違いに...
-
batファイルでrenameができませ...
-
Perlで特定行から特定行までを...
-
HTTP::Request::Common qw(POST...
-
close()で例外が投げられる理由
-
openした後、closeしないでプロ...
-
VBAでCSVファイルの特定行を書...
-
バッチファイルの作り方(CSV→...
-
Pythonでegrep機能をつかいたい
-
パスから最後のディレクトリだ...
-
複数ファイルの読み込みについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
fgets で値が取得できない
-
MATLABのm-fileについて
-
JSP URLに表示される拡張子 .jsp
-
drtファイルはどうしたら開...
-
PerlでのUseless use...
-
python renameについて
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
Firefox で file:// で始まる U...
-
VBAコードを張り付け後のエクセ...
-
perl ファイルが開かない
-
ファイルの存在の有無を確かめ...
-
AutoNts
-
VBA テキストファイルを読み取...
-
fopen64について
-
行を指定して削除する方法PERL
-
文字列をカウントする方法
-
read() on unopened filehandle...
おすすめ情報