WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:サムネイルをクリックすると直接保存画面へ飛ばすには?

0:[投稿] atusi [2003/01/18 12:55 ][環境:win2000 UNIX]

サムネイル画像をクリックすると、

拡大された画像が表示→右クリックで保存、ではなく、

直接、画像ファイルのダウンロード画面が開くような
(次の場所からファイルをダウンロードするよう選択しました)

サムネイルを作成することって出来ますか?

出来れば方法をご指導下さるようお願いします。



1:[回答] hrm [2003/01/18 13:22 ]

Content-Typeがapplication/octet-streamなヘッダが返るようにするの
が一番良いんでしょうね。他の方法があるのか良く分かりませんが。

.htaccessとかCGIは使えるサーバーですか?


2:[質問] atusi [2003/01/18 15:01 ]

サーバですが、CGIは使えます。


3:[完了] atusi [2003/01/18 15:12 ]

すいません、改行を押したつもりが
書き込みになってしまいました。

教えて頂いて言うのも変ですが、このあたりが参考になりそうですね。
http://tohoho.wakusei.ne.jp/lng/199912/99120414.htm
http://tohoho.wakusei.ne.jp/wwwxx013.htm
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/download.html

どうもありがとうございました。


4:[質問] atusi [2003/01/19 18:39 ]

昨日ここで質問させて頂いて、わかったつもりになっていたんですが、実際下のように書いて見たのですがDLが始まるどころか、文字化けした文字列が表示されるだけに終わりました。

このCGIの呼び出しと同時に
$download_file のDLが開始されるようにするには
どうすればいいのでしょうか?

誤りをご指摘いただけると幸いです。
どうぞよろしくお願いいたします。

#!/usr/local/bin/perl

$download_file = './test.lzh'; # ダウンロードするファイル名

# ダウンロードファイルの読み込み
$/ = ''; # セパレータなし
open(DL, $download_file ) or die("cannot open $download_file");
$file = <DL>;
close(DL);

# 出力
printf("Content-Disposition: attachment; filename=$download_file\n");
print "Content-type; application/octet-stream\n\n"; # httpdにヘッダ出力
print "$file";                                      # ファイル出力

exit(0);


5:[回答] (*´Д`*) [2003/01/20 00:27 ]

$download_file に Location させるのは?
あと printf → print かと。


6:[関連] (*´Д`*) [2003/01/20 00:28 ]

>>5 は >>4 の

> このCGIの呼び出しと同時に
> $download_file のDLが開始されるようにするには
> どうすればいいのでしょうか?

に対する回答でした。


7:[質問] atusi [2003/01/20 08:51 ]

どうもありがとうございます。
printf となっていた行を printに変えることで、
ローカルホストではDL開始画面が表示されるまでには至りました。


しかし、実際にDLしようとすると 「localhost - image_DL.cgiがDL出来ませんでした。」と、DL対象がcgiファイルになっていて、かつDL出来ないのです。

また、Location させるというと、下の行は必要ない、
ということでしょうか?

print "Content-Disposition: attachment; filename=$download_file\n";
print "Content-type; application/octet-stream\n\n"; # httpdにヘッダ出力


8:[回答] やじうま1号 [2003/01/20 16:31 ]

#!/usr/local/bin/perl

$download_file = './test.lzh'; # ダウンロードするファイル名

# ダウンロードファイルの読み込み
open(DL, $download_file ) or die("cannot open $download_file");
read DL, $file, -s DL;
close(DL);

# 出力
print qq(Content-Disposition: attachment; filename=$download_file\n);
print "Content-type: application/octet-stream\n\n"; # httpdにヘッダ出力
print $file;                                      # ファイル出力

でどだろうか。


9:[質問] atusi [2003/01/22 08:24 ]

やはり同じエラーメッセージが出てしまいました。
(「localhost - image_DL.cgiをダウンロードできませんでした。」

最初は簡単に出来るかとも思ったのですが、
環境に依存したりして難しいんでしょうか?

それとも、httaccess の書き換えが必須と言う事でしょうか?

ローカルホストと、レンタルサーバの二箇所で
試して見ましたが、動きませんでした。

少しでも結構ですので、情報提供をお願いします。
どうぞよろしくお願いいたします。


10:[質問] atusi [2003/01/22 08:35 ]

加えてご指摘いただいたLocation するという手段ですが、
実行すると無限ループのような感じになって、
「開いています」→「リダイレクトしています。」→「開いています」 という具合に、ずっと読み込みを続けてしまうようです。

Location にするために、書き換えた部分のみ貼り付けます。
重ね重ね、どうぞよろしくお願いいたします。

print qq(Content-Disposition: attachment; filename=$download_file\n);
print "Location: http://localhost/~atusi/image_DL.cgi\n\n";


11:[回答] やじうま1号 [2003/01/22 16:35 ]

>9 は、>8 を受けてのものでしょうか。>8 はテストをしていなかったのですが、テストをしてみて次のようにしたら、うまくいきました。

環境は、Win Me、AnHTTPdですが。

#!/usr/local/bin/perl

$download_file = 'bugs.cgi'; # ダウンロードするファイル名

# ダウンロードファイルの読み込み
open(DL, $download_file ) or die("cannot open $download_file");
read DL, $file, -s DL;
$size = -s DL;
close(DL);

# 出力
print qq(Content-Disposition: attachment; filename="$download_file"\nContent-type: application/octet-stream\nContent-length: $size\n\n);
print $file;                                      # ファイル出力


12:[質問] atusi [2003/01/22 20:58 ]

ありがとうございました、おかげでDL出来ました!!!

ここでもう少しだけ質問させてもらっても
いいでしょうか?

やじうま1号さんが参考にされた書籍やサイトがあれば
ぜひ教えてください。私もヘッダについて勉強してみたいです。

また、DLを開始しようとすると
image_DL.cgi というファイルから出力しているためと思われるのですが、
デフォルトのファイル名が image_DL となっているのですが、
これをダウンロードしたいファイルの名前に変える事って出来ますかね?
$download_file = 'bugs.cgi'; # ダウンロードするファイル名

出来るならぜひ教えていただきたいです。
本当にどうもありがとうございました。


13:[回答] やじうま1号 [2003/01/22 21:37 ]

あ、テストした時のままだった(汗)

ヘッダはダウンロードCGIをみて書きました。
futomi's CGI Cafe http://www.futomi.com/
のです。

$download_fileの値を変えれば何でもダウンロードさせることが出来ますが、ディレクトリが違うと、ファイル名がおかしくなるので、変数を変えるといいでしょう。


14:[回答] atusi [2003/01/23 11:06 ]

futomi's CGI cafe ですよね〜私もブックマークしていました。
htaccess などはここを見て設置しています。
すいませんが、「ヘッダ」「octet-stream」「Content-type」などの単語をいくつか入れてサイト検索してみましたし、目次からいろいろと見てみましたがヘッダらしきページは見つかりませんでした。よかったら、どのページが教えて頂けませんか?

ちなみに友人に頼んで
MAC OS] IE5.2 という環境で検証したのですが、
ダウンロードにならず、通常のブラウザから画像を開いた時と同じ挙動になってしまいました。

CGIが出力したヘッダに対しての反応が、
OSによって違うという事なんですかね?

何回も申し訳ありません。
すいませんが、どうぞよろしくお願いします。


15:[質問] atusi [2003/01/23 11:06 ]

すいません、質問でした。


16:[回答] やじうま1号 [2003/01/23 15:20 ]

ダウンロードCGIのソース(dlranklog.cgi)からですね。

Mac OSの具合は良くわかりません。
OSでと言うことはないとは思いますが。Chinemaとかで試してもらってみてはどうでしょう。


17:[完了] atusi [2003/01/24 00:40 ]

なるほど、このページのこのCGI、すごいですね。
私も参考にさせてもらおうと思います。

本当に、何度もどうもありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World