いつもお世話になります。
表題のとおり、
PHPでサーバー上の画像や動画のファイルをダウンロードしローカルに保存したいのですが、
ダウンロードはできるのですがファイルの中身が空になってしまいます。
特に動画の場合は
「ファイルを再生できません。プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。」
というメッセージが出ます。
ファイル形式は画像はjpg、動画はwmvで試しました。OSはwindows7です。
ブラウザはクローム、サファリ、IEで試しましたが結果は一緒でした。
プレーヤーは入っていて、ffftpでサーバーのファイルをクリックすると正しく開きます。
以下がソースになります。
<?php
// ダウンロードさせる元ファイル
$fullpath = 'http://www.ドメイン/パス/logo.jpg';
// 保存時のファイル名(デフォルト)
$filename = 'logo.jpg';
// HTTPヘッダ送信
header("Content-type: image/jpeg");
header("Content-Disposition: attachment; filename=$filename");
//ファイルサイズ進捗表示
header('Content-Length: '.filesize('$filename'));
// ファイルを読み込んで出力
readfile($fullpath);
?>
以上です。
ダウンロードされるファイル名は正しい(この場合logo.jpg)ものがダウンロードされます。
間違っている箇所、追加or削除したほうがよいコードなどございますでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
$fullpath がダメです。
httpで始まっているのは使えません。
No.2
- 回答日時:
まず、fopen_wrappersという設定値はONになっていますか?
<?php
// ダウンロードさせる元ファイル
$fullpath = 'http://www.ドメイン/パス/logo.jpg';
// 保存時のファイル名(デフォルト)
$filename = 'logo.jpg';
// HTTPヘッダ送信
header("Content-type: image/jpeg");
header("Content-Disposition: attachment; filename=$filename");
//ファイルサイズ進捗表示
header('Content-Length: '.filesize($fullpath));
// ファイルを読み込んで出力
readfile($fullpath);
?>
filesize('$fullpath') となっていたので、直しました。
http://www.phppro.jp/phpmanual/php/function.read …
PHPにはあまり詳しくないですが;;
ありがとうございます。
教えてくださったページから色々わかりました。
無事解決です。
ご指摘いただいた点も直しました。
お恥ずかしい・・
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでCSVファイルの任意の行だ...
-
連続ダウンロードのエラー
-
PHPで生成したファイルをダウン...
-
ftp_getでローカルにファイルが...
-
日本語ファイルのリネームと保存
-
PHPでファイルをダウンロードさ...
-
ダウンロードファイル名の文字...
-
fwrite~サーバ環境で、なぜか0...
-
PHPのif文でその処理を途中で抜...
-
PHPでFilename cannot be empty...
-
FTPコマンドでディレクトリごと...
-
VBSの「MsgBox」について
-
「@$変数」の「@の意味は?」
-
DLL のロードの順序
-
フォントの色を変えるには?
-
ftpでアップロードが出来ない
-
【file_exists】ファイルが存在...
-
CSV出力にHTMLが入ってしまう
-
レジストリにあるアプリケーシ...
-
「クラウドにアップロード」」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで複数ファイルのダウン...
-
ダウンロードファイル名の文字...
-
PHPでファイルのダウンロードす...
-
phpでzipファイルダウンロード...
-
ファイルのダウンロードのイベ...
-
zip圧縮の種類について
-
PHPでファイルをダウンロードさ...
-
libxml2のインストール
-
PHPでGoogle TTSからMP3ダウン...
-
eclipseでコメントアウトができ...
-
HTTPで返されるファイル名の取...
-
cakephpでのダウンロード機能の...
-
phpでうまく画像がダウンロード...
-
【PHP】ダウンロードサイト作成...
-
ブラウザでExcelをダウンロード...
-
VB.NETのFTPダウンロードについて
-
複数ファイルを連続でダウンロード
-
PHPのFTP関数ftp_fgetエラーに...
-
ファイル一覧を表示しその画面...
-
PHP 検索結果のCSVダウンロード
おすすめ情報