質問編集履歴

2

プログラミング環境、OS、IDE、対象ブラウザについて追記しました。また、aタグからのアプローチも試しました。

2022/02/16 02:39

投稿

DigDigBottom
DigDigBottom

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,15 @@
1
1
 
2
2
 
3
3
  ### C#で、サーバーのローカルにあるzipフォルダをブラウザからダウンロード出来るようにしたいです。
4
+ **※追記
5
+ 環境:ASP.NET Web Forms、
6
+ OS :Windows10、
7
+ IDE:Visual Studio 2017になります!
8
+ 対象のブラウザ:Chrom,IE,FireFox,Edgeなどの主要ブラウザ
9
+ (IEなどは古すぎるバージョンに対応する必要なありません)**
10
+
4
- 画面上にButtonコントロールを配置しています。
11
+ aspx:画面上にButtonコントロールを配置しています。
5
- ボタンクリック時に、
12
+ aspx.cs:ボタンクリック時に、
6
13
  サーバーに置いてあるzipフォルダを、ブラウザ上からダウンロード出来るようにしたいです。
7
14
  (クライアントがボタンをクリックすると、ブラウザかたYYYYMM.zipをダウンロードできる)
8
15
 
@@ -44,5 +51,9 @@
44
51
  ```
45
52
 
46
53
  ### 補足情報(FW/ツールのバージョンなど)
54
+ HTMLのaタグ download属性も試してみましたが、
55
+ ブラウザは強力なウィルスのダウンロードを阻止するため、
56
+ ローカルのファイルはセキュリティ制約を外さないとダウンロード出来るようにならないらしいです…。
57
+ aタグからのアプローチはひとまず保留で考えています。
47
58
  .NET Framework4.7です。
48
59
 

1

zipフォルダの実態はファイルなので、ファイルをブラウザかたダウンロードできるような実装を試している

2022/02/16 02:19

投稿

DigDigBottom
DigDigBottom

スコア12

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
  ただ、対象のフォルダはbatで作成しているので、zipフォルダでないバージョン
13
13
  C:\sample\YYYYMM
14
14
  の方が実装が簡単でしたら、これでも問題ありません。
15
- ダウンロード時にzipフォルダであればよいです。
15
+
16
16
  中身はcsvが3つほど入っています。
17
17
 
18
18
  .NET Framework4.5以降から、
@@ -20,17 +20,28 @@
20
20
  ブラウザからのダウンロードが出来る簡単な方法はありますでしょうか?
21
21
  (DotNetZipのような、ライブラリを使用する方法は避けたいです。
22
22
 
23
+ ※追記
24
+ 頂いだコメントから、zipフォルダの実態はファイルだと知りましたので、
25
+ ブラウザからファイルをダウンロードするよう、実装中です!
26
+ 今のコードでダウンロードは出来るのですが、
27
+ **ブラウザからダウンロード**が出来ず…
28
+ 引き続き調べながら実装中です。
29
+
30
+ 以下の画像のようなダウンロードを実装したいです。
31
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-16/0cd98950-44c8-4640-804c-49a144df9201.png)
32
+
23
- ### 該当のソースコード
33
+ ### 試したこと
24
34
 
25
35
  ```C#
26
36
  protected void btnContentsLinklist_Click(object sender, EventArgs e)
27
37
  {
38
+ string downloadFilePath = @"C:\sample\YYYYMM.zip";
39
+ WebClient mywebClient = new WebClient();
40
+ File.SetAttributes(downloadFilePath, FileAttributes.Normal);
28
-  //ソは試
41
+   //このメッドだと、2番目の引数に指定したパに勝手に出来てまう…
42
+ mywebClient.DownloadFile(downloadFilePath, @"d:\myfile.zip");
29
43
  }
30
44
  ```
31
-
32
- ### 試したこと
33
-
34
45
 
35
46
  ### 補足情報(FW/ツールのバージョンなど)
36
47
  .NET Framework4.7です。