動画をダウンロードするとサイズ0となってしまいます。
動画:AVI、サイズ:122MB
プログラムは
<?php
$file = "".$_GET["id"].".avi";
$file_length = filesize($file);
header("Content-Disposition: attachment; filename=$file");
header("Content-Length: $file_length");
header("Content-Type: application/octet-stream");
readfile ($file);
?>
で、ファイル名は正常に受け渡されています。
また、サイズも表示させたとこころ正常値でした。
ちなみに、サイズ19MBのAVIで試したところ、正常にダウンロード
できました。
サイズの問題だと思うのですが、対応方法をお教え下さい。
宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ん~、上手くいきませんでしたか・・・
では、関係なかったかもしれません
あとは、ありきたりですがファイルのパス、ファイル名に間違いがないか、
PHPのエラーログに何かあがっていないかを確認してみるしか思いつきません
それから、前の回答で「8MBずつ」と書いてしまいましたが、「8KBずつ」の間違いでした
失礼しました
GETパラメータをファイル名に使う件に関しては、
正確にはそのまま使ってもいいですが入力値チェックは行うべきです
例えば id=../hoge というパラメータを受け取った場合、
予期しない場所のファイルを参照される恐れがあります
一番良いのは予期されるファイル名の場合だけ許可し、
それ以外のファイル名の場合は処理しないようにするのが良いかと思います
別の方法としては、idを数字だけ許可するようにして、
1だったら"one.avi"、2だったら"two.avi"というようなマッピングをするのも良いかと思います
No.1
- 回答日時:
メモリの問題な気がします
readfile($file);
の部分を下記のように変えてやってみてはいかがでしょうか?
$fp = fopen($file, "r");
while (!feof($fp)) {
echo fread($fp, 8192);
}
fclose($fp);
ファイルから8MBずつ読んで出力を繰り返します
蛇足ですが、GET のパラメータをそのままファイル名として使うのは危険なので、
やめたほうがいいですよ
有難うございます。
テストしてみましたが、同様の結果となりました。
ちなみに、「GETのパラメータをそのままファイル名とし・・・」ですが、
現在主流の方法などを簡単で構いませんのでお教えいただければ助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- デジタルカメラ 画像ファイルのサイズを理解する方法についてお教えください。 3 2022/09/18 12:54
- デジタルカメラ Googleフォトで画像を自動補正すると何故サイズが小さくなるのでしょうか? 4 2022/09/19 13:05
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Ruby 教えてください 2 2023/01/04 17:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cakephpでのダウンロード機能の...
-
画像の文字化けが解決できません
-
XMLのロードに失敗する
-
PHPのif文でその処理を途中で抜...
-
【file_exists】ファイルが存在...
-
onedrive にexcelファイルをア...
-
拡張子php画像をjpg画像等に変...
-
youtubeに音声のみのmp4ファイ...
-
PHPのMySQLモジュールのインス...
-
pixivのイラスト投稿の仕方を教...
-
javascriptからphpへ変数
-
PHPで作るフレーム、どんな風に...
-
PHPで外部プログラムのバックグ...
-
FTPでのファイルとディレクトリ...
-
ファイルアップロードの上限を...
-
フレームワークの選定について
-
ヒアドキュメントの中で別ファ...
-
PHP8を使うと、大量のWarningが...
-
さくらサーバーにて、phpからメ...
-
PHP MySQLに画像を直接保存
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで複数ファイルのダウン...
-
ファイル一覧を表示しその画面...
-
zip圧縮の種類について
-
eclipseでコメントアウトができ...
-
ブラウザでExcelをダウンロード...
-
複数ファイルを連続でダウンロード
-
phpでzipファイルダウンロード...
-
libxml2のインストール
-
PHPでファイルのダウンロードす...
-
CSV出力時の”0”表示(電話番号...
-
PHPでダウンロードしたファイル...
-
phpでうまく画像がダウンロード...
-
wgetの使い方
-
Excelファイルをダウンロード
-
サーバー上のファイルをブラウ...
-
日本語ファイル名のアップロー...
-
ファイルのダウンロードのイベ...
-
ダウンロードファイル名の文字...
-
ファイルへの直接アクセスをで...
-
動画をダウンロードするとサイ...
おすすめ情報