- ベストアンサー
jpg画像をブラウザで表示ではなくダウンロードさせる方法
http://code.nanigac.com/source/view/461 jpg画像を、ブラウザで表示ではなくダウンロードさせる方法を探していて上記ページにたどり着きました。 上記の例ですと「<a href="download.php?file=test.jpg">」といったようにHTML側に余分な記述が必要になります。 これを「<a href="test.jpg">」というようにシンプルに出来ないでしょうか。 よろしくお願いします。
- Java-Java
- お礼率48% (81/166)
- PHP
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>octet-stream属性が常につくと、どのようにまずいのでしょうか。 やっていることはMIMEの偽装です。トラブルの元になります。 かといって今回のようなシステムがどうしても必要であれば お勧めはできなくても、やってはいけないとまでは強制できません。 リスクがあることを理解した上で運用してください。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>こちらは以前試しました 微妙にずれてますね・・・ まず.htaccessの書き方に工夫が必要です。 RewriteEngine On RewriteRule .*\.jpg? download.php?img=$0 こうしておいて、download.phpを以下のようにします。 <? $img=$_GET["img"]; if(!file_exists($img)){ print "no data"; exit; }; header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"{$img}\""); readfile($img); ?> 場合によっては、!file_exists($img)以下の処理は nodata.jpgなどダミーファイルを読むようにしてもいいかも しれませんね。 で、これを呼び出すファイルをつくってテストしてみてください。 1.jpgを用意して、2.jpgを用意しないようにすればわかりやすい と思います test.htm <img src="1.jpg"> <img src="2.jpg"> <a href="1.jpg">1</a> <a href="2.jpg">2</a>
お礼
>微妙にずれてますね・・・ 失礼いたしました。早とちりでした。 教えていただいた事を試したところ、うまくいきました! ありがとうございます! >octet-stream属性がついてしまうので、とてもお勧めできる方法では ありません。 すみません。後学のために教えていただきたいのですが、 octet-stream属性が常につくと、どのようにまずいのでしょうか。 よろしくお願いします。
- yambejp
- ベストアンサー率51% (3827/7415)
>「<a href="test.jpg">」というよう .htaccessなどで読み替えてやればできないことはないでしょう。 ただこれをやってしまうと、jpgのヘッダーに常に octet-stream属性がついてしまうので、とてもお勧めできる方法では ありません。
補足
>.htaccessなどで読み替えてやればできないことはないでしょう。 こちらは以前試しましたが、ほとんどのブラウザでまともに動いてくれませんでした。 http://faq.creasus.net/04/0606/
関連するQ&A
- PHP 画像の表示
プログラミング初心者です。 PHPでブラウザに画像を表示したいのですが映らなくて 以下のソースコードは間違っているでしょうか? <?php $fileName = "img/test.jpg"; //ファイル名 if (file_exists($fileName)) { header('Content-type: image/jpeg'); header('Content-Length: '.filesize("http://localhost:8080/test.jpg")); //あった方が良い readfile("http://localhost:8080/test.jpg"); //ファイルを読み込んで標準出力に書き出し exit; } ?>
- ベストアンサー
- PHP
- PDFファイルのJPG化
XP,OUTLOOK-E IE6 のユーザです。 ◇従来は、文書ファイルとJPGファイルを別にして送ってもらっていたものですから、そのつもりでHTMLソースを記述しておりました。 ◇今般、画像を添付したメールの送付を受けソースに載せる必要が生じました。 そこでこの画像入り文書ファイルを開いてPRINT SCREENで処理したものをJPG化してタグの<a href="〇〇">・・・・・にして切り抜けましたが、ブラウザ上で粗いものにまりました。 ◇しかし、今後、JPG差し込みつきのWORDで送付してくることが多くあると思いますので、 画質を損なわない方法があればお教え願いたいのです。 宜しくお願いします。
- ベストアンサー
- HTML
- includeでHTMLファイルを呼出してもブラウザで表示されない
<td><% include("navi.html"); %></td> ブラウザでプレビューしても表示されず、ブラウザでソースを見ても上記のタグのままです。ちゃんと表示される場合はnavi.htmlのソースが見えるはずですよね? PHPがインストールされていないのでは?と思い、2種類のサーバで試しましたが、 PHPがある一方では文字化けするも表示、PHPが怪しいもう一方では上記のタグのままです。 <!--#include file="head.html"-->でも現象は同じでした。 改行コードと文字コードも統一していますし、改善策をどなたかご教授下さい。 ちなみにPHPは詳しくありません。
- ベストアンサー
- PHP
- 画像が表示できない
ある掲示板の表紙に 自分のHP画像を貼っていたのですが 昨夜からどうしても表示できなくなりました。 HTMLは <img src="http://www.××.ne.jp/××/s03.JPG"> と、半角で、 今まで表示できていた時と変わらないはずなのに 下のようなソースになってしまい 表示できないのです。 でも、他の練習掲示板で試してみると表示できています。 それに、わたしと同じ掲示板の他の人の 掲示板では、その方の書いた画像が表示できています。 HTMLソースは上記のように正しくなっています。 エラーのソースは下記のようなものです。 何が原因でしょうか? <img src="<A href="/redir/?url=http://www.××.ne.jp/××/s03.JPG" target="_blank">http://www.××.ne.jp/××/s03.JPG</A>">
- ベストアンサー
- その他(プログラミング・開発)
- AndroidTM 4.1内 検索・ブラウザー
はじめまして kikipgです。 ご質問いたします。 宜しくお願いします。 ドコモスマフォ galaxy SIII AndroidTM 4.1の 機種(Android)内 ダウンロードフォルダ内に テストページ(xx00.html)ファイルを作り保存し、既存ブラウザーから 検索をし、テストページをブラウザーで表示させたいと思います。 file:///mnt/storage /sdcard0/download/xxxxxx/xx00.htmlと記述しましたが やり方に誤りがあるのか検索・ブラウザー表示ができませんでした。 正しい検索の方法やブラウザーの設定ほうほうがあれば 教えてください。 お手数ですが宜しくお願いします。
- 締切済み
- docomo
- ファイルダウンロードの問題(HTMLのソースについて)
HTMLソースについてブラウザからpdf,word,excelのファイルを例えば <A HREF="***.pdf">,<A HREF="***.xls">,<A HREF="***.doc">、のように記述すればダウンロードしてファイルをオープンさせるとブラウザの中で開きますが、なぜ、一太郎の拡張子jsw,jxwのものは、できないのでしょうか? どなたか、開けるようにする対策を知っていたら教えてください。 お願いします。
- 締切済み
- オフィス系ソフト
- ソースコードを表示するブラウザはありますか?
次のような機能を持ったブラウザを探しているのですが、このようなものはあるのでしょうか? (1)URLを指定するとそのページのソースコードを表示する。 (2)ソースコード中の<A>タグ(またはURL)をクリックすると、そのURLをIEなどのHTMLを解釈して表示するブラウザに渡して表示させる。
- ベストアンサー
- ブラウザ
- 携帯サイトで [プルダウンリンク] を使いたいのですが・・・m(_ _)m
携帯用サイトを作成しています。 <a href="○○○/~×××/download01.php?sid=<?=$sid?>">ダウンロード1</a><br> <a href="○○○/~×××/download02.php?sid=<?=$sid?>">ダウンロード2</a><br> <a href="○○○/~×××/download03.php?sid=<?=$sid?>">ダウンロード3</a><br> <a href="○○○/~×××/download04.php?sid=<?=$sid?>">ダウンロード4</a><br> <a href="○○○/~×××/download05.php?sid=<?=$sid?>">ダウンロード5</a><br> etc・・・ というPHPを使用したリンク郡を、プルダウンリンクとして一行にまとめたいのですが、 どう記述すれば良いのか教えて頂けないでしょうか。 ちなみに、このCGIは業者に製作してもらいました。 私自身はCGIのスキルはなく、HTMLを記述出来る程度です。 どうぞ、皆様の知恵をお貸し下さい。宜しくお願いします。m(_ _)m
- ベストアンサー
- PHP
- readfile関数はIE以外のブラウザで動作しないのですか?
----test.php--------- <?php header("contents-type: video/mpg"); @readfile("http://xxxxx.ne.jp/yyyyy.mpg"); exit(); ?> ----test.php--------- 上の“test.php”を、HTML内に次のように埋め込んで <a href="test.php">MPEG再生</a> ブラウザから“MPEG再生”をクリックすると、IEはきちんとメディアプレイヤが起動して再生してくれますが、 Netscape7.1 とFireFox1.0.4は、再生はおろか、ブラウザ自体が固まってしまいます。 readfile関数はIE以外のブラウザでは動作しないのでしょうか?
- ベストアンサー
- PHP
お礼
>やっていることはMIMEの偽装です。トラブルの元になります。 なるほど。了解しました。 ご回答、ありがとうございました。助かりました!