出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/23 9:58:55] [5140]
  Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   YasNet(管理人)さん [2005/07/23 13:03:16] [5141]
    Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/23 23:01:11] [5142]
      Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   ryuさん [2005/07/25 9:19:40] [5143]
        Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/25 10:57:02] [5144]
          Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   ryuさん [2005/07/25 13:39:49] [5145]
            Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/25 13:58:27] [5146]
              Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   ryuさん [2005/07/25 14:40:28] [5147]
                Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/25 14:47:49] [5148]
                  Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   YasNet(管理人)さん [2005/07/25 15:26:48] [5149]
                    Re:wmvファイルをダウンロードダイヤログを表示してダウンロードさせたい   哲也さん [2005/07/25 17:47:59] [5150]
                      Re:私の勘違いのようです。   YasNet(管理人)さん [2005/07/27 9:13:31] [5153]
                        Re:私の勘違いのようです。   哲也さん [2005/07/27 10:33:11] [5154]

[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
Program By YasNet