回答編集履歴

4

追記

2020/08/04 02:20

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -112,6 +112,10 @@
112
112
 
113
113
 
114
114
 
115
+ > $("#test1").load(root + test1);やら$("#test1").load(root + test2); を done メソッドのコールバックで呼び出したら解決しませんか。しかし、ベストな方法かはわかりません
116
+
117
+
118
+
115
119
  具体的には、下記のようなノリです。
116
120
 
117
121
  ※動くかも分からないし、正しいかもわかりませんが .load(root + test1) でファイルの中身が取れる前提でのコードです

3

文章の修正

2020/08/04 02:20

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -112,4 +112,42 @@
112
112
 
113
113
 
114
114
 
115
+ 具体的には、下記のようなノリです。
116
+
117
+ ※動くかも分からないし、正しいかもわかりませんが .load(root + test1) でファイルの中身が取れる前提でのコードです
118
+
119
+ ```diff
120
+
121
+ $.ajax({
122
+
123
+ url : HOST + "/Server/Server/info_uploader.aspx",
124
+
125
+ type : "POST",
126
+
127
+ data : formData,
128
+
129
+ cache : false,
130
+
131
+ contentType : false,
132
+
133
+ processData : false,
134
+
135
+ dataType : "html",
136
+
137
+ async: false
138
+
139
+ })
140
+
141
+ .done(function(){
142
+
143
+ + $("#test1").load(root + test1);
144
+
145
+ document.getElementById("upload").innerHTML = "test1をアップロードしました";
146
+
147
+ });
148
+
149
+ ```
150
+
151
+
152
+
115
153
  また、余談ですが、`onClickDummyButton1`、`onClickDummyButton2`、`onClickDummyButton3`は1つの関数にまとめられます。メソッドや変数の名前に連番をつけることはアンチパターンとして有名なので、調べてみると別の意味で幸せになれるかもしれません。

2

追記

2020/08/03 08:53

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,11 +1,3 @@
1
- クローズ済みですが、途中まで内容を書いていたので特定の閲覧者への回答を残しておきます。
2
-
3
-
4
-
5
- ---
6
-
7
-
8
-
9
1
  > テキストファイルを指定してサーバにアップロードします。更新すると選択したボタンと連動したテキストエリアにテキストの内容が表示されます
10
2
 
11
3
  > inputタグを使わずにファイルをブラウザへアップロードする方法
@@ -27,3 +19,97 @@
27
19
  ASP.NET Web Formsでは下記のような機能があるようですから、使えるかもしれません。
28
20
 
29
21
  [[ASP.NET]ブラウザからファイルをアップロードできるようにするには?](https://www.atmarkit.co.jp/ait/articles/0507/08/news118.html)
22
+
23
+
24
+
25
+ ---
26
+
27
+
28
+
29
+ 再開されているようなので、追記します
30
+
31
+ ※ただ、自分はWeb Formsはあまり詳しくありません。間違っている点はコメントで指摘をお願いします
32
+
33
+
34
+
35
+ 拝見したコードでは、ASP.NET WebFormsにファイルをアップロードする処理は書かれていますが、ダウンロードする処理は実装されていないように見えます。なので、まずはその実装を行えば良いかと思います。
36
+
37
+
38
+
39
+ - [[ ASP.NET ] ファイルのアップロードとダウンロード ( FileUpload / HttpResponse.TransmitFile )](http://hensa40.cutegirl.jp/archives/1208)
40
+
41
+ - [ASP.NET file download from server](https://stackoverflow.com/questions/18477398/asp-net-file-download-from-server)
42
+
43
+
44
+
45
+ # 実装で気になる点
46
+
47
+
48
+
49
+ ```javascript
50
+
51
+ $.ajax({
52
+
53
+ url : HOST + "/Server/Server/info_uploader.aspx",
54
+
55
+ type : "POST",
56
+
57
+ data : formData,
58
+
59
+ cache : false,
60
+
61
+ contentType : false,
62
+
63
+ processData : false,
64
+
65
+ dataType : "html",
66
+
67
+ async: false
68
+
69
+ })
70
+
71
+ .done(function(){
72
+
73
+ document.getElementById("upload").innerHTML = "test1をアップロードしました";
74
+
75
+ });
76
+
77
+ ```
78
+
79
+
80
+
81
+ アップロード後、HTTPリクエストを送っているのではなく、HTML要素(upload)をただ書き換えています。**このdoneメソッドのコールバックに、何も実装されていません。**
82
+
83
+
84
+
85
+ なので、ここに何を実装したいのかがポイントだと思っています。
86
+
87
+ (HTML要素を書き換えて文字コードの表示する? もしくはページ遷移してからそのページで文字コードの表示をする?)
88
+
89
+
90
+
91
+ コメントで
92
+
93
+
94
+
95
+ > アップロード後、ページが更新されるのでしょうか(HTTPリクエストが送信されるのか)。
96
+
97
+ もしくはHTML要素が書き換わるだけでしょうか。
98
+
99
+
100
+
101
+ に対して
102
+
103
+
104
+
105
+ > 前者です。POSTで送信します
106
+
107
+
108
+
109
+ と答えて頂きました。
110
+
111
+ ページ遷移が伴っても良いのであれば [[ ASP.NET ] ページ遷移と動作シーケンス ( Server.Transfer / Response.Redirect )](http://hensa40.cutegirl.jp/archives/793) の通りに実装すれば良いです。その後、遷移先のページでダウンロードしたテキストファイルを適切なエンコーディングを行い、表示する実装を作成する必要があります。
112
+
113
+
114
+
115
+ また、余談ですが、`onClickDummyButton1`、`onClickDummyButton2`、`onClickDummyButton3`は1つの関数にまとめられます。メソッドや変数の名前に連番をつけることはアンチパターンとして有名なので、調べてみると別の意味で幸せになれるかもしれません。

1

文章の修正

2020/08/03 07:31

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -17,3 +17,13 @@
17
17
 
18
18
 
19
19
  そうではなく、HTTPリクエストを送信しない仕様であり、かつどうしてもinputタグを使わないなら、私ならWebAPI サーバーを立てます。レスポンスに各文字コードを持ったバイト配列を何らかの形式(JSONなど)で返すようなPOSTメソッドを作って対処をするかもしれません。
20
+
21
+
22
+
23
+ > アップロードしたテキストファイルをASP.NET Web Forms側で読込み
24
+
25
+
26
+
27
+ ASP.NET Web Formsでは下記のような機能があるようですから、使えるかもしれません。
28
+
29
+ [[ASP.NET]ブラウザからファイルをアップロードできるようにするには?](https://www.atmarkit.co.jp/ait/articles/0507/08/news118.html)