C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WebClientでファイルダウンロード時のファイル名


(過去ログ 103 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■61801 / inTopicNo.1)  WebClientでファイルダウンロード時のファイル名
  
□投稿者/ momo (10回)-(2011/09/06(Tue) 13:19:02)

分類:[VB.NET/VB2005 以降] 

2011/09/06(Tue) 13:32:21 編集(投稿者)

こんにちは。
VB2008のWebClientを使ってファイルのダウンロードを行うプログラムを作成しています。
現在のところ、

WebClient1.DownloadFile(url, savepath)

として、urlの内容をダウンロードし、savepathのファイル名で保存することは出来たのですが、
保存時のファイル名を、「指定したパス\ダウンロード時のデフォルト名」にするため、
ダウンロード時のデフォルト名を取得するにはどうすればよいのでしょうか? ←表現を変更
ちなみに、上記urlはcgiで、またここでいうダウンロード時のデフォルト名とは、例えばIEでダウンロードするときに、
「名前をつけて保存」ダイアログにデフォルト表示されるファイル名のことです。

宜しくお願いします。
引用返信 編集キー/
■61841 / inTopicNo.2)  Re[1]: WebClientでファイルダウンロード時のファイル名
□投稿者/ momo (11回)-(2011/09/07(Wed) 16:25:20)
自己レスです。
あれからいろいろと調べた結果、WebClientにResponseHeadersというプロパティがありましたので、
とりあえず、WebClient1.DownloadFile(url, savepath)を行った後にこのプロパティを展開すべく、

Dim buf As String = ""
For Each k As String In WebClient1.ResponseHeaders.Keys
buf &= k& ":" & WebClient1.ResponseHeaders.Item(k) & vbCrLf
Next

として変数bufの内容を見てみると、ヘッダ情報の中に関係ありそうなものが以下の通り2つありました。

Content-Disposition:attachment; filename="test.zip"
Content-Type:application/download; name="test.zip"

おそらく、IEではこれらの情報を使って「名前をつけて保存」ダイアログにデフォルト表示されるファイル名を
取得しているのだと思うのですが、上記ヘッダのどちらを使うのが一般的なのでしょうか?

宜しくお願いします。

引用返信 編集キー/
■61846 / inTopicNo.3)  Re[2]: WebClientでファイルダウンロード時のファイル名
□投稿者/ 魔界の仮面弁士 (2350回)-(2011/09/07(Wed) 18:40:11)
No61841 (momo さん) に返信
> Content-Disposition:attachment; filename="test.zip"
> Content-Type:application/download; name="test.zip"
> おそらく、IEではこれらの情報を使って「名前をつけて保存」ダイアログにデフォルト表示されるファイル名を
> 取得しているのだと思うのですが、上記ヘッダのどちらを使うのが一般的なのでしょうか?

実験サイトを作ってみました。
http://www.vb-user.net/junk/replySamples/2011.09.08.18.04/sample.html


手元の環境で試してみた限りでは、IE8 + WinXP の環境においては
Content-Type で指定されたファイル名は無視されていました。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -