プロが教える店舗&オフィスのセキュリティ対策術

Perlを使用し、CSVファイルをダウンロードさせるスクリプトを作りました。
データが大きくなると、回線状況などの問題により、データを全てダウンロード
しないままダウンロードが完了してしまう時があるようです。
自分の環境では再現できなかったのですが、途中までしかダウンロードできていないにもかかわらず、正常終了したような顔しているそうです。

全てダウンロードできなかった場合に、ユーザーに対して何かエラーを表示させることはできないでしょうか?


print"Content-Type: text/csv\n";
print"Content-Disposition: attachment; filename=register.csv\n\n";
foreach (@data){
    print"$_\n";
}

A 回答 (3件)

がると申します。


結論から先に申し上げると「無理です」。
HTTPは基本的に「クライアントのデータ到着周りのステータスを受け取らない」プロトコルなので、そういった類のチェックは出来ません。

ただ「原則としては無理だけど」を前提に、いくつかのブラウザではJavaScriptである程度近いことまでは出来るようですが。

この回答への補足

回答ありがとうございます。

もしよろしければ、JavaScriptでの方法を教えていただけませんでしょうか。
ブラウザはIEに対応できれば、後は捨てようと思います。

補足日時:2006/03/09 11:32
    • good
    • 0

根本解決ではないですが


ダウンローダー系のツールを使うように
推奨するような書き方をしたらどうですか?

後は、手動チェックになりますがCRC,MD5で
ファイルチェックをさせるようにするとか

この回答への補足

回答ありがとうございます。

ユーザーはコンピューターのことをほとんど理解していない方々なので、
ダウンローダーを別途導入して、、というのは現実的ではありません。
できるだけユーザーにも管理者にも負担をかけずに対応できればと考えています。

せっかく回答していただいたのにすみません。

補足日時:2006/03/09 13:41
    • good
    • 0

でしたら専用のダウンロードツールとして


ActiveXでうごくなにかしらの物を作る方法
でしょうね。
どっかのネットのファイルストレージ系では
そういうのがあります。
(どこか忘れましたが)
    • good
    • 0
この回答へのお礼

>ActiveXでうごくなにかしらの物を作る方法でしょうね。

そのようですね。
いろいろなダウンロードサイトを見てみましたが、ダウンロードが正常終了したかどうかをチェックしているサイトはほとんどなく、
そこまで本格的にやっているサイトは、専用のダウンローダーを使用していますよね。

お礼日時:2006/03/10 09:34

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