• ベストアンサー

画像を表示させずにダウンロード

初めて質問させて頂きます。仕事上で必要になってCGIを勉強しはじめたばかりのプログラミング初心者です。 ウェブ上でJPEGのサムネイルをクリックするとTIFF画像をダウンロードするシステムを作りたいのですが、TIFFファイルにリンクを張っても、QuickTimeで開いてしまうので困っています。いろいろ調べても、要領を得ません。 何とか圧縮ファイルにせずにTIFF形式のままダウンロードする方法は無いでしょうか。ご教授願います。

noname#8233
noname#8233
  • CGI
  • 回答数5
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • nipotan
  • ベストアンサー率59% (134/227)
回答No.5

> nipotanさんの回答をコピー&ペーストしてやってみたんですが、Software errorが出てしまうのですが、ローカルだからということでしょうか?それとも他に設定し足りないところがあるのでしょうか? おっと。コメントをよく読んでくださいね。 > 404 Not Found. at D:\HomePage\cgi-bin\tiff.cgi line 8. は、8 行目 (my $size = (-s $tiff_file) || die '404 Not Found.'; の箇所) から、ファイルが存在しなかった場合 (あるいはファイルが 0 バイトだった場合) に発せられるエラーメッセージになっています。 で、コメント云々ですが、 --- # 画像のパス my $image_path = '/usr/local/apache/htdocs/images'; --- ここを適宜、お手元の環境に合わせて設定してください。 相対パスでも、絶対パスでもかまいません。 /usr/local/apache/htdocs/ ってのは、一般的に UNIX に Apache をインストールした際にデフォルトで設定されるディレクトリなので、"AN HTTPD1.41d" のような、Windows 環境下のものであれば、この指定は適しません。 私は AN HTTPD ははるか昔に使っていた事がある程度なので全然知識がないですが、例えば、D:\HomePage\tiff_images というフォルダにある tiff 画像をダウンロードさせるためには my $image_path = 'D:/HomePage/tiff_images'; のように指定すれば大丈夫かも知れません。 「かも」というのは、スラッシュでディレクトリの区切りをするのは、ActivePerl 的には OK なんですが、Microsoft IIS サーバあたりではコケた気がします。で、An HTTPD がどうだったかわからないのでなんともいえません。まずは、こんな感じの設定でお試し下さい。

noname#8233
質問者

お礼

随分とかかってしまいましたが、 何とか解決しました。 nipotanさん、本当にありがとうございました。 また、相談することもあると思うので その時は、またよろしくお願いします。

その他の回答 (4)

noname#3361
noname#3361
回答No.4

CGIでは有りませんが。 サムネイル上で右クリック→対象をファイルに保存 をするとリンク先が直接DLできますよ。 サムネイルの下にでも上記の但し書きを添えるのが一番簡単ではないでしょうか。

noname#8233
質問者

お礼

回答ありがとうございます。 確かに、この方法が一番簡単でプラットホームにも左右されない方法なんですが、 やはり初心者(初級者ではなく)の方を想定した場合、 右クリックの時点で混乱される方もいらっしゃいますので、 やはり、「クリック」のみで対処できる方法を探したいと思っています。 こちらの説明不足で、お手間を取らせました。 申し訳ございません。

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.3

失敬、 my $path_info =~ s|^/(.+?)|$1|; の箇所は、 my $path_info = $ENV{PATH_INFO}; $path_info =~ s|^/(.+?)|$1|; にしてください。

noname#8233
質問者

お礼

早速の回答ありがとうございます。 書くのを忘れていたんですが、CGIはPerlです。 ローカルに仮想サーバーを立てた状態で作業をしています。 ActivePerl5.6.1とAN HTTPD1.41dをつかっています。 で、TIFFファイルを開かずにローカルに保存させる方法を探しています。 nipotanさんの回答をコピー&ペーストしてやってみたんですが、Software errorが出てしまうのですが、ローカルだからということでしょうか?それとも他に設定し足りないところがあるのでしょうか? ソースは以下のとおりです。 use CGI::Carp 'fatalsToBrowser'; use constant CRLF => "\x0d\x0a"; my $image_path = '/usr/local/apache/htdocs/images'; my $path_info = $ENV{PATH_INFO}; $path_info =~ s|^/(.+?)|$1|; my $tiff_file = $image_path.'/'.$path_info; my $size = (-s $tiff_file) || die '404 Not Found.'; open(FH, $tiff_file) || die $!; binmode FH; binmode STDOUT; print 'Conten-length: '.$size.CRLF, 'Accept-ranges: byte'.CRLF, 'Content-Disposition: inline; filename="'.$path_info.'"'.CRLF, 'Content-Type: application/octet-stream'.CRLF.CRLF; my $buffer; print $buffer while(read(FH, $buffer, 1024)); close FH; で、エラーメッセージが以下です。 Software error: 404 Not Found. at D:\HomePage\cgi-bin\tiff.cgi line 8. For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. [Wed Oct 23 19:38:42 2002] D:\HomePage\cgi-bin\tiff.cgi: 404 Not Found. at D:\Ho mePage\cgi-bin\tiff.cgi line 8. どうぞ、ご教授お願いします。

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.2

CGI でやるんですよね?言語は?? Perl でやるとしたら、以下のようなサンプルでどうでしょうか? --- use CGI::Carp 'fatalsToBrowser'; use constant CRLF => "\x0d\x0a"; # 画像のパス my $image_path = '/usr/local/apache/htdocs/images'; my $path_info =~ s|^/(.+?)|$1|; my $tiff_file = $image_path.'/'.$path_info; my $size = (-s $tiff_file) || die '404 Not Found.'; open(FH, $tiff_file) || die $!; binmode FH; binmode STDOUT; # ヘッダの出力 print 'Conten-length: '.$size.CRLF, 'Accept-ranges: byte'.CRLF, 'Content-Disposition: inline; filename="'.$path_info.'"'.CRLF, 'Content-Type: application/octet-stream'.CRLF.CRLF; # 画像ファイルの出力 my $buffer; print $buffer while(read(FH, $buffer, 1024)); close FH; --- これを hogehoge.cgi とした場合、 http://your.domain/cgi-bin/hogehoge.cgi/TIFF_FILENAME.tiff のように、ダウンロードさせたいファイル名を "CGI 名/Tiff ファイル名" として指定してアクセスして、ダウンロードさせます。 ただ、IE の場合はそれでも QT で表示してしまう可能性があります。もしその場合は…防ぎようがないです。

noname#25358
noname#25358
回答No.1

 それはMIMEの設定が QuickTime になってるんですね。  なので、サーバーの設定を、拡張子が .tif の場合は画像ファイルであると認識するように変更する必要があります。  (変更しなくてもプログラム側で何とかなりますが、むしろこっちの方が面倒です)  サーバーがアパッチであれば、.htaccess を書き換えればできます。   AddType tiff/image .tif  とまあ、こんな感じになると思います。  「tiff/image」の部分は、これでよかったかちょっと自信なしです。

関連するQ&A

  • WebサイトでJpeg、Gif画像をダウンロードさせたい

    WebサイトでJpeg、Gif画像をダウンロードさせたい Webサイトで訪問者がリンクをクリックしたときにJpeg、Gifデータをダウンロードできるように したいのですが可能でしょうか? イメージ的にはZipファイルのようにローカルにダウンロード させることを考えています。 ちなみにそのサイトは、ZIPなどの圧縮ファイル、PDFなどは置くことができません。

    • ベストアンサー
    • HTML
  • 大きい画像をダウンロード

    1ページにjpeg のサムネイル画像がたくさんあってリンク先の大きい画像をダウンロードしたいのですが、どうしたら良いですか。やはり1枚ずつクリックして保存するしかないのでしょうか。

  • ファイル圧縮形式の変更について

    TIFFファイルについてお願いします。 あるスキャナーにおいて、取込んだ画像がTIFFファイルとして作成されます。 画像がモノクロの場合、圧縮形式は"G4" 画像がカラーの場合、圧縮形式は"JPEG" となっており、圧縮形式の変更は出来ません。 このファイルをWEBサーバで使用する際に、ImageMagickのconvertを利用し、"TIFF"→"JPEG"にファイルをコンバートしています。 ここで問題が発生しているのですが、モノクロの場合はJPEGに変換が行えるのですが、カラーの場合はconvertでエラーとなっています。 おそらくカラーのTIFFファイルが"JPEG"での圧縮形式の為、JPEGに変換する時にエラーが発生しているものと思われます。 これを回避する為にTIFFファイルの圧縮形式を変更するか、JPEG以外のファイルに変換するかを考えていますが、上手く実行できません。 良い方法、又はImageMagickでconvertさせる方法をご存知の方がいらっしゃいましたら、是非ご教授下さい。 よろしくお願いします。

  • TIFFファイルについて

    WindowsXpでは、TIFFファイルをダブルクリックすると「WINDOWS画像とFAXビューア」というのが起動します。 開けるファイルと開けないファイルがあり、JPEG圧縮で保存されたTIFFは開けないようです。 他の形式ではファイルサイズが大きくなるためJPEG圧縮が好ましいのですが、開けるようにならないでしょうか?

  • 画像ファイルをブラウザに表示せずDLする方法

    正しいカテゴリに質問しているか定かではありませんが、 お助けください。 ユーザがサーバー上にあるJPEGファイルをブラウザ上に 表示せず、直接、ダウンロードする方法はありますでしょうか? ZIP等で圧縮されたファイルのリンクをユーザがクリックするとダウンロード 先を指定するウィンドウが表示されますが、画像ですと、ブラウザに出てしまいます。 圧縮させることなく(拡張子を変えることなく)、 JPEGをそのままダウンロードする方法を調べているのですが、 どうしてわかりません。 どなたか、お知恵をおかしください。 宜しくお願い致します。

  • TIFFファイルをプリントする方法について

    こんにちは。 デジカメで撮ったデータがTIFF形式となっていました。 インターネットや店頭で写真にしようと思ったら、 JPEG形式にしないといけないらしいんです。 せっかくTIFF形式なのにJPEG形式で圧縮するのももったいないと思うんです。 adobe photoshop album 2.0 miniというソフトがパソコンにインストールされているんですが、 これのオンラインサービスだと、 TIFFファイルから写真にしてくれるのでしょうか。 それかーTIFFファイルから写真にしてくれるお店とかあったら教えてください。 よろしくお願いします。

  • adobe photoshop album 2.0 miniについて

    こんにちは。 デジカメで撮ったデータがTIFF形式となっていました。 インターネットや店頭で写真にしようと思ったら、 JPEG形式にしないといけないらしいんです。 せっかくTIFF形式なのにJPEG形式で圧縮するのももったいないと思うんです。 adobe photoshop album 2.0 miniというソフトがパソコンにインストールされているんですが、 これのオンラインサービスだと、 TIFFファイルから写真にしてくれるのでしょうか。 それかーTIFFファイルから写真にしてくれるお店とかあったら教えてください。 よろしくお願いします。

  • マイドキュメントで画像ファイルのサムネイルが表示されない!

    マイドキュメントを開いて画像ファイル(Jpeg,Gif,Tiff等)を選択すると、左側にその画像のサムネイル(縮小された画像)が表示されますよね? それが突然表示されなくなりました。 どこか設定をいじったのかもしれません。 どうしたら直るのでしょうか?

  • 画像のファイル形式の違いについて

     画像のファイル形式って、たくさんあって、違いがよくわかりません。JPEG,TIFF,BMP,PICT,GIF,PNGって具合にほんとたくさんあって、困ってます。  それぞれがどのように違うのを教えてください。たぶん、圧縮の仕方が違うだと思うのですが。本とか、ホームページとかも教えてくれたら嬉しいです。

  • VBAで画像圧縮はできますか?

    VBAを使って、 bmp画像ファイルをJPEGやTIFFファイルに圧縮したいのですが 可能でしょうか? よろしくお願い致します。

専門家に質問してみよう