[PHP-users 12686] ファイルの出力とNortonInternetSecurity。
NIC
php-users@php.gr.jp
Tue, 21 Jan 2003 05:24:57 +0900
こんにちは古屋と申します。
フォームよりアップロードしたファイル(.wmvや.avi)をPHPに出力させる形でダ
ウンロードした時に失敗することが多々あり気になったことがあるので質問させ
てください。
● 動作
ファイルのアップロードにはHTMLでフォームを使用してPHPに渡し、/tmpに配置
されるファイルをリネームすることでアップロードを実現しています。
ダウンロードには、sample.php?File=xxxxxxxという形でPHPスクリプトにファイ
ルデータを渡して読ませてからHeaderでMIMEを指定して出力するようにしていま
す。
//------------ 一部抜粋 -------------//
if($fp = fopen($File_Path,"rb")){
//ファイル読込み
$Binary = fread($fp,filesize($File_Path));
//MIMEタイプの特定
$MIME = $UPLF->MIME($FileID);
//Header
mb_http_output("pass");
header('Content-Type: '.$MIME."\n\n");
//Body
print $Binary;
}
//-----------------------------------//
● 疑問
上記のスクリプトで出力されたデータ(ファイル)は、NortonInternetSecurityを
作動させていると多くは正しくダウンロードできません。具体的には動画を再生
できなかったり、画像が表示されなくなったりです。(1Mを越えるデータに多
いです)
元となるアップロードしたデータ自体に問題があるのかと思い、FTPでダウンロー
ドしてローカルで再生させたり、上記のスクリプト通さずに直接アップロードし
たファイルを指定してダウンロードさせたりしたのですが、全く問題無く再生や
表示が出来ました。
また、ダウンロードした際のソースをWWWCにて表示させてみたところ、
//------------ 一部抜粋 -------------//
0
0&イu伺マヲル(・A潦B・' f・βQVチゥ9殖俊^V]慄…略
//-----------------------------------//
上記のようにファイルのデータ本体の前に0と改行が挿入されてしまっていまし
た。(これによってローカルにダウンロードした時に正しく再生出来なかったと
思われるのですが…。)
スクリプト自体には特にセキュリティ的に問題を起こすような記述はしていない
つもりなのですが、何故NortonInternetSecurityに阻まれてしまうのでしょうか?
似たような体験をなさって解決された方などがおりましたら、是非アドバイスし
ていただけると嬉しいのでよろしくお願いします。
● 環境
RedHat Linux 7.2
Apache1.3.27
PHP4.3.0
MySQL3.23.52