質問編集履歴

3

文章追加

2018/05/31 10:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,8 +32,6 @@
32
32
 
33
33
  let fileBinary = new FormData();
34
34
 
35
- console.log(fileObject.length);
36
-
37
35
  for (let i = 0; i < fileObject.length; i++) {
38
36
 
39
37
  fileBinary.append("file[]", fileObject[i]);
@@ -194,7 +192,7 @@
194
192
 
195
193
  ###試したこと
196
194
 
197
- dragのEventListener内に、
195
+ dropのEventListener内に、
198
196
 
199
197
  ```JavaScript
200
198
 
@@ -217,3 +215,35 @@
217
215
  フルパス:ファイルデータ
218
216
 
219
217
  のようになっており、実際に扱われているディレクトリなどの階層構造のようなものではないため、送りたいデータがフルパスとファイルデータである、という理由です。
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ ###追・追記
226
+
227
+ ```JavaScript
228
+
229
+ const reader = new FileReader();
230
+
231
+ const files = event.dataTransfer.files;
232
+
233
+ console.log(files);
234
+
235
+ reader.onload = () => {
236
+
237
+ console.log(reader.result);
238
+
239
+ };
240
+
241
+ reader.readAsText(files[0]);
242
+
243
+ reader.readAsText(results[0]);
244
+
245
+ ```
246
+
247
+ のコードをdropのEventListenerのコードの、下部のconsole.logの下に追加し、実行したところ、filesの方はテキストを表示できているのに対し、resultsの方はblobじゃないとエラーが出ました。
248
+
249
+ もしかしてdataTransfer.itemsではファイルBlobは取得できないのでしょうか、、、

2

コード修正

2018/05/31 10:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  function uploadFile(fileObject) {
32
32
 
33
- let fileBinary = new FormData();\
33
+ let fileBinary = new FormData();
34
34
 
35
35
  console.log(fileObject.length);
36
36
 

1

追記

2018/05/31 10:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -205,3 +205,15 @@
205
205
  ```
206
206
 
207
207
  と与えると、ファイルの時は期待する動作をしてくれるのですが、ディレクトリには対応してくれません。
208
+
209
+
210
+
211
+ ###追記
212
+
213
+ 「サーバー側には、ディレクトリ内で階層構造になっているファイルのみを取得し、ドラッグ&ドロップされたディレクトリをルートディレクトリとして、ファイル毎のフルパスとファイルそのもののデータを送る」
214
+
215
+ とかいてありますが、サーバー側でのデータ管理は、
216
+
217
+ フルパス:ファイルデータ
218
+
219
+ のようになっており、実際に扱われているディレクトリなどの階層構造のようなものではないため、送りたいデータがフルパスとファイルデータである、という理由です。