「test.dat」というファイルをブラウザから
ダウロードさせるためにバイナリ出力をしたいのですが、
空ファイルばかりできて上手くいきません。
以下のようなコードなのですが、どこが悪いでしょうか?
ご教授ください。お願いします。
症状:ブラウザからダウンロードすると、ファイル名は正しいが
空のファイルになっている
環境:perl 5.8.7 windows server2003
-----------------------------------------------------------
#!/usr/local/bin/perl
print "Content-Disposition: attachment; filename=\"test.dat\"\n";
print "Content-Type: application/octet-stream\n\n";
open(IN, "test.dat");
binmode(IN);
binmode(STDOUT);
print while (<IN>);
close(IN);
-----------------------------------------------------------
No.1ベストアンサー
- 回答日時:
print while (<IN>);
↓
while (<IN>) { print; }
に変えたらどうでしょう?
No.2
- 回答日時:
こちらで試したところ(WINXP+Apache/2.0.55 (Win32) PHP/5.1.4 )
文法的には問題なさそうですが、、、
あとはfileの問題ではないかと思いますが?
#!/usr/local/bin/perl
$| = 1;
$time=localtime();
print "Content-Disposition: attachment; filename=\"$time.dat\"\n";
print "Content-Type: application/octet-stream\n\n";
open(STDERR, ">&STDOUT");
$file='./test.dat';
open(IN,$file)||die print" $file が有りません -s $file の結果は= ".(-s $file) ."---";
こんなので試したらどうでしょ?
fileが開けない場合、ダウンロードしたものを
テキストエディタで開くとエラーメッセージと fileサイズが記入されていますので参考に、、、
どうしても駄目なら読み込みもとのfileを他のものに変えて試してください
過去に1回だけ、上記のようなスクリプトで確かにfileが実在し
fileサイズも正しく表示されているのに、どうしても読めないfileが有り
別のfileに変えたら、問題なく読めるということがありました
(ずっと後でスキャンディスクしたら、そのfileを記録している部分にエラーが見つかりました)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- その他(クラウドサービス・オンラインストレージ) Google ColabでGoogleドライブのサブフォルダにファイルを生成する方法 1 2022/10/31 17:37
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.open でのファイル指定方法
-
PerlでのUseless use...
-
WindowsでPerlをする際,1行目の...
-
VBA テキストファイルを読み取...
-
巨大なテキストの最終行を取得...
-
配列をまるごとフォルダにコピ...
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
VBAでCSVファイルの特定行を書...
-
awkスクリプトでダブルクォーテ...
-
エクセルVBA コードが同じでも...
-
タブの色を変更する方法
-
CSVデータの編集の際の重複チェ...
-
サーバーにある特定の拡張子フ...
-
指定したフォルダにアップロード
-
batファイルでrenameができませ...
-
パスから最後のディレクトリだ...
-
Perlの初心者です。2重ループ...
-
Perlの質問:行と列を入れ替え...
-
Perl<->Oracle間での文字化けに...
マンスリーランキングこのカテゴリの人気マンスリー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内での変数の扱い?
おすすめ情報