出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[5140] wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/23 9:58:55 |
いつも参考にさせてもらっています。非常に有益な情報が多く、 大変助かっています。 今回初めて質問させていただくのですが、拡張子がwmaやwmvの ファイルをダウンロードしてもらう際、普通に <a href="aaaa.wma">wmaファイル</a> と書くと、このリンクをクリックするとメディアプレイヤーが 開いてしまいます。 そこで、 <% Response.Buffer = True Response.Clear Response.ContentType = "audio/x-ms-wma" FileName = "aaaa.wma" strFilePath = "D:\aaaa.wma" Response.AddHeader "Content-Disposition", "attachment; filename=" & FileName Const adTypeBinary = 1 Dim strFilePath strFilePath = "D:\aaaa.wma" Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile strFilePath Response.BinaryWrite objStream.Read objStream.Close Set objStream = Nothing %> というような感じでServer.CreateObject("ADODB.Stream")を 使用すると、サーバーのローカル内にあるファイルについては メディアプレイヤーを起動させずに、ダウンロードダイヤログ を表示させることが出来ました。 ところが、別のインターネット上のサーバーにあるファイルを ダウンロードするときにダウンロードダイヤログを表示させたい のですが、これがうまくいきません。 先方のサーバーの設定を特別な設定をすることが無く、うまく ダウンロードダイヤログを表示させることはASPで出来るので しょうか? 一度ローカルサーバーにダウンロードしてから、Redirectする という方法もあるようですが、それだとwmvファイル様な大きな ファイルのダウンロードの時に二重に時間がかかってしまい、 現実的な解決策ではありませんでした(>_<) |
[5141] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:YasNet(管理人)さん 2005/07/23 13:03:16 |
こんにちは YasNet(管理人)です。 ASPはサーバサイド技術の為別のサーバに設定出来なければどうしようもありません。 ダイアログを出したいだけであればJavaScriptなどで出来ると思いますよ。 もちろん、ダイアログの表示内容は違いますが・・・ お役に立てずスミマセン。 ひょっとしたら、私の知らない技術があるかもしれません。 それでは 失礼致します。 > いつも参考にさせてもらっています。非常に有益な情報が多く、 > 大変助かっています。 > > 今回初めて質問させていただくのですが、拡張子がwmaやwmvの > ファイルをダウンロードしてもらう際、普通に > > <a href="aaaa.wma">wmaファイル</a> > > と書くと、このリンクをクリックするとメディアプレイヤーが > 開いてしまいます。 > > そこで、 > <% > Response.Buffer = True > Response.Clear > > Response.ContentType = "audio/x-ms-wma" > FileName = "aaaa.wma" > strFilePath = "D:\aaaa.wma" > > Response.AddHeader "Content-Disposition", "attachment; filename=" & FileName > > Const adTypeBinary = 1 > Dim strFilePath > > strFilePath = "D:\aaaa.wma" > > Set objStream = Server.CreateObject("ADODB.Stream") > objStream.Open > objStream.Type = adTypeBinary > objStream.LoadFromFile strFilePath > Response.BinaryWrite objStream.Read > > objStream.Close > Set objStream = Nothing > %> > > というような感じでServer.CreateObject("ADODB.Stream")を > 使用すると、サーバーのローカル内にあるファイルについては > メディアプレイヤーを起動させずに、ダウンロードダイヤログ > を表示させることが出来ました。 > > ところが、別のインターネット上のサーバーにあるファイルを > ダウンロードするときにダウンロードダイヤログを表示させたい > のですが、これがうまくいきません。 > > 先方のサーバーの設定を特別な設定をすることが無く、うまく > ダウンロードダイヤログを表示させることはASPで出来るので > しょうか? > > 一度ローカルサーバーにダウンロードしてから、Redirectする > という方法もあるようですが、それだとwmvファイル様な大きな > ファイルのダウンロードの時に二重に時間がかかってしまい、 > 現実的な解決策ではありませんでした(>_<) |
[5142] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/23 23:01:11 |
> こんにちは YasNet(管理人)です。 > > ASPはサーバサイド技術の為別のサーバに設定出来なければどうしようもありません。 > > ダイアログを出したいだけであればJavaScriptなどで出来ると思いますよ。 > > もちろん、ダイアログの表示内容は違いますが・・・ > お役に立てずスミマセン。 > > ひょっとしたら、私の知らない技術があるかもしれません。 > > それでは 失礼致します。 > JavaScriptで表示させる、ですか。なるほど、一度必要な情報を htmlとしてASPが生成して、ブラウザーがそれを開くときに、 JavaScript(クライアント側)で処理をする、というわけですか。 おもしろそうですね。この方法を研究してみたいと思うのですが、 具体的にはどのようなコマンドを使用すれば、JavaScriptで、 関連づけされているアプリケーションを使用せずに、ファイルを 保存する、のダイヤログを表示できるのでしょうか? |
[5143] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:ryuさん 2005/07/25 9:19:40 |
showModalDialog で検索してみてください。 |
[5144] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/25 10:57:02 |
> showModalDialog > > で検索してみてください。 お返事ありがとうございます。早速showModalDialogを使用した スクリプトを作成してみたところ、呼び出すファイルがhtml であれば正常に呼び出せるのですが、呼び出すファイルを wmvファイルにしたところ、ウィンドウは開きますが、そのまま 止まってしまいます。プレイヤーは起動しませんでしたが、 ファイルに保存する、ということも出来ませんでした。 showModalDialogというのはバイナリーファイルでも開けるの でしょうか? |
[5145] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:ryuさん 2005/07/25 13:39:49 |
showModalDialogをwmvファイルをダウンロードしたりするという方法で扱ったことは無いので(扱ったのは別形式のファイルをダウンロードさせだけですので)、間違ってたら申し訳ないのですが、showModalDialogで開くのはaspで、その中で、ファイルダウンロードさせるコードを書いてやれば問題ないと思うのですが、、、 |
[5146] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/25 13:58:27 |
>showModalDialogで開くのはaspで、その中で、ファイルダウン >ロードさせるコードを書いてやれば問題ないと思うのでが、、、 ものすごい勘違いをしていたら申し訳ないのですが、つまりこういう感じでよろしいでしょうか? ファイルをダウンロードするhtmlの中 <script Language="JavaScript"> <!-- showModalDialog("dl.asp",window,"status:false;dialogWidth:320px;dialogHeight:240px"); // --> </script> としてやって、dl.aspは、 <% URL="aaaa.wmv" Response.Redirect URL %> という感じでしょうか? とりあえず、最初のJavaScriptで.html を指定すればウィンドウが正しくひらくのですが、.aspファイル を指定すると、「ファイルが見つかりません」となります(>_<) |
[5147] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:ryuさん 2005/07/25 14:40:28 |
自分の場合ですので、参考になるかわからないですが、以下のように記述しています。 --A.asp-- function D_datacreate() { var strPass; // 作成したASPファイルのpass(ダイアログで開いた中で指定しているパスです) } //ボタンイベントを行った場合としています。 function button(obj) { var new_win; /*ダウンロード作成ダイアログOPEN*/ new_win = window.showModalDialog("B.asp?BBB=<%=BBB%>", D_datacreate, "dialogWidth=100px;dialogHeight=1000px"); /*ダウンロード実行ASP OPEN*/ strSta = window.open (D_datacreate.strPass); /*ダウンロード実行ASP CLOSE*/ strSta = window.close(D_datacreate.strPass); } --B.asp-- <SCRIPT language="JavaScript"> window.dialogArguments.strPass = ファイルのパス; </SCRIPT> これをどうにかいじればできるんじゃないかな?と思うのですが、、、(VBS部分で処理を書いたりetc) あと、ADODBを使おうとされていたので、ASPとは違う技術になっちゃうのですが http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml の過去記事43〜48にADODB.StreamオブジェクトとXMLHTTPオブジェクトによるダウンロードに関するものがあるので、ご参考までに、、、 > >showModalDialogで開くのはaspで、その中で、ファイルダウン > >ロードさせるコードを書いてやれば問題ないと思うのでが、、、 > > ものすごい勘違いをしていたら申し訳ないのですが、つまりこういう感じでよろしいでしょうか? > > ファイルをダウンロードするhtmlの中 > <script Language="JavaScript"> > <!-- > showModalDialog("dl.asp",window,"status:false;dialogWidth:320px;dialogHeight:240px"); > // --> > </script> > > としてやって、dl.aspは、 > > <% > URL="aaaa.wmv" > > Response.Redirect URL > > %> > > という感じでしょうか? とりあえず、最初のJavaScriptで.html > を指定すればウィンドウが正しくひらくのですが、.aspファイル > を指定すると、「ファイルが見つかりません」となります(>_<) |
[5148] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/25 14:47:49 |
ソース例を出していただき、ありがとうございました! このソースを参考に、テストスクリプトを作成してみます(^_^) |
[5149] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:YasNet(管理人)さん 2005/07/25 15:26:48 |
こんにちは YasNet(管理人)です。 遅くなりましたが・・・ 一応・・・以下のキーワードを参考に調査してみてください。 リンクを置いて・・・名前を付けて保存って方法です。 document.execCommand('SaveAs') 実際テストしていないので、駄目ならすみません。 それでは 失礼致します。 |
[5150] Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい |
投稿者:哲也さん 2005/07/25 17:47:59 |
ご回答ありがとうございます。ご指摘のコマンドを使用して、以下の様なサンプルを作成してみました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title>ファイル保存ダイアログを表示してローカルに保存する</title> <script type="text/javascript"><!-- function dSave(data) { var fr=self.frSave.document; fr.innerText=data; fr.execCommand("SaveAs"); } //--></script> </head> <body> <form name="myForm" onsubmit="return false"> <input type="button" value="ファイルの保存ダイアログで保存する" onclick="dSave(this.form.textData.value)"> </form> <IFRAME src="***.wmv" name="frSave" style="visibility:hidden" width="0" height="0"></IFRAME> </body> </html> このhtmlを開いたとたん、メディアプレイヤーが起動してしまいました(>_<) |
[5153] Re:私の勘違いのようです。 |
投稿者:YasNet(管理人)さん 2005/07/27 9:13:31 |
こんにちは YasNet(管理人)です。 画像しか出来ないようですね。 期待を持たせてスミマセンでした。 それでは 失礼致します。 |
[5154] Re:私の勘違いのようです。 |
投稿者:哲也さん 2005/07/27 10:33:11 |
> 画像しか出来ないようですね。 > 期待を持たせてスミマセンでした。 > それでは 失礼致します。 いえいえとんでもないです、丁寧なご回答 ありがとうございましたm(_ _)m ペコ |
TreeBBS For ASP V.0.1.3 |