質問編集履歴

2

該当コード追加

2023/03/24 06:34

投稿

mmmseng
mmmseng

スコア2

test CHANGED
File without changes
test CHANGED
@@ -19,7 +19,25 @@
19
19
 
20
20
  参考にしているサイトは、こちらです。
21
21
  [参考サイト]https://qiita.com/wannabe/items/2b2f59a626313a8f58d4
22
+ 以下、参考サイトそのままのコード
23
+ ```
24
+ async function scanFiles(entry, tmpObject) {
25
+ switch (true) {
26
+ case (entry.isDirectory) :
27
+ let entryReader = entry.createReader();
28
+ let entries = await new Promise(resolve => {
29
+ entryReader.readEntries(entries => resolve(entries));
30
+ });
31
+ await Promise.all(entries.map(entry => scanFiles(entry, tmpObject)));
32
+ break;
33
+ case (entry.isFile) :
34
+ tmpObject.push(entry);
35
+ break;
36
+ }
37
+ }
38
+ ```
22
39
 
40
+ 以下、実現したいコード
23
41
  ```
24
42
  function fileObject(items, Transfer) {
25
43
 

1

エラー文及び該当ソースコードの追記

2023/03/24 02:40

投稿

mmmseng
mmmseng

スコア2

test CHANGED
File without changes
test CHANGED
@@ -13,11 +13,46 @@
13
13
 
14
14
  単純に”FileSystemオブジェクトをFileListに追加”すると、fileを受け取るはずが、ないよと言われ追加できません。
15
15
 
16
+ エラー文追記:Uncaught (in promise) TypeError: Failed to execute 'add' on 'DataTransferItemList': parameter 1 is not of type 'File'
17
+
16
18
  ### 該当のソースコード
17
19
 
18
- 作成できていないため、コードはありません。
19
20
  参考にしているサイトは、こちらです。
20
21
  [参考サイト]https://qiita.com/wannabe/items/2b2f59a626313a8f58d4
22
+
23
+ ```
24
+ function fileObject(items, Transfer) {
25
+
26
+ for (let item of items) {
27
+
28
+ let entry = item.webkitGetAsEntry();
29
+
30
+ if (entry.isDirectory) {
31
+
32
+ // 省略
33
+
34
+ } else if (entry.isFile) {
35
+
36
+ Transfer.items.add(entry); // 該当コード
37
+
38
+ }
39
+
40
+ }
41
+
42
+ }
43
+
44
+
45
+ let Transfer = new DataTransfer()
46
+ $('~').on('drop', function (e) {
47
+
48
+ e.preventDefault();
49
+
50
+ let items = e.originalEvent.dataTransfer.items;
51
+
52
+ console.log(fileObject(items, Transfer))
53
+
54
+ })
55
+ ```
21
56
 
22
57
  ### 試したこと
23
58