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 がどうだったかわからないのでなんともいえません。まずは、こんな感じの設定でお試し下さい。
随分とかかってしまいましたが、
何とか解決しました。
nipotanさん、本当にありがとうございました。
また、相談することもあると思うので
その時は、またよろしくお願いします。
No.4
- 回答日時:
CGIでは有りませんが。
サムネイル上で右クリック→対象をファイルに保存
をするとリンク先が直接DLできますよ。
サムネイルの下にでも上記の但し書きを添えるのが一番簡単ではないでしょうか。
回答ありがとうございます。
確かに、この方法が一番簡単でプラットホームにも左右されない方法なんですが、
やはり初心者(初級者ではなく)の方を想定した場合、
右クリックの時点で混乱される方もいらっしゃいますので、
やはり、「クリック」のみで対処できる方法を探したいと思っています。
こちらの説明不足で、お手間を取らせました。
申し訳ございません。
No.3
- 回答日時:
失敬、
my $path_info =~ s|^/(.+?)|$1|;
の箇所は、
my $path_info = $ENV{PATH_INFO};
$path_info =~ s|^/(.+?)|$1|;
にしてください。
早速の回答ありがとうございます。
書くのを忘れていたんですが、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.
どうぞ、ご教授お願いします。
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_FIL …
のように、ダウンロードさせたいファイル名を "CGI 名/Tiff ファイル名" として指定してアクセスして、ダウンロードさせます。
ただ、IE の場合はそれでも QT で表示してしまう可能性があります。もしその場合は…防ぎようがないです。
No.1
- 回答日時:
それはMIMEの設定が QuickTime になってるんですね。
なので、サーバーの設定を、拡張子が .tif の場合は画像ファイルであると認識するように変更する必要があります。
(変更しなくてもプログラム側で何とかなりますが、むしろこっちの方が面倒です)
サーバーがアパッチであれば、.htaccess を書き換えればできます。
AddType tiff/image .tif
とまあ、こんな感じになると思います。
「tiff/image」の部分は、これでよかったかちょっと自信なしです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Android(アンドロイド) TIFF画像を表示できるAndroidアプリを探してます。 3 2022/05/16 09:00
- その他(スマホアプリ・スマホゲーム) アプリをスマホにダウンロード、インストールする方法 3 2022/08/13 11:26
- CAD・DTP A3のWORDファイルをTIFFに変換したい 6 2022/12/15 16:00
- デジタルカメラ TIFFをDNGに変換 3 2022/08/06 19:25
- その他(クラウドサービス・オンラインストレージ) 質問です。 mediafireというサイトで「W*ng」というファイルをダウンロードしようとリンクを 1 2023/05/25 03:05
- その他(クラウドサービス・オンラインストレージ) firestorage_androidスマホでダウンロードできない 1 2022/10/25 08:18
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- ドライブ・ストレージ ディスクがいっぱいですと表示される 4 2022/06/12 18:38
- Windows 10 Windows10にてjpg形式の画像が開けません 4 2022/08/24 14:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
POSTメソッドの最大容量について
-
ホームページにメールフォーム...
-
ホームページでCGIのフォームを...
-
CGIって何ですか?簡潔に教えて...
-
cgiの注釈が出来ない
-
CGI.pmはもう古い!?
-
フォームを再送信しますか?
-
入力フォーム(電話番号)
-
プロバイダのスピードは、maps...
-
3DCG
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bashシェルスクリプトで空白が...
-
シェルスクリプト(Linux)【初心...
-
CGIでの環境変数PERL5LIBの設定
-
500エラーorダウンロードになる...
-
シェルスクリプトの記載方法
-
パールスクリプトを呼び出すと...
-
~/.bashrcを間違えて保存してし...
-
eclipseでC言語がコンパイルで...
-
pythonのエラーについて
-
scpコマンドでリモートサーバの...
-
書き込み権限が無いためコピー...
-
Viで書き込もうとすると、保...
-
/ が何時の間にか「Read-only f...
-
コマンド終了ステータス
-
/etc/passwd と /etc/shadowを...
-
FTPコマンドの戻り値について
-
DOSコマンドでのワイルドカ...
-
rcpコマンドについて、教えて!
-
Illustratorのデータをまとめて...
-
IBM漢字コードのSJIS変...
おすすめ情報