回答編集履歴

1

追記

2016/12/06 03:33

投稿

yambejp
yambejp

スコア114837

test CHANGED
@@ -13,3 +13,93 @@
13
13
  $_FILESで参照するのではなくajaxなど利用してバックグラウンドで
14
14
 
15
15
  送り込んでやるのが妥当かと。
16
+
17
+
18
+
19
+ # 追記
20
+
21
+ 調べました。以下でどうでしょう
22
+
23
+ - 送り元(send.htm)
24
+
25
+ ```HTML
26
+
27
+ <script src="js/jquery.js"></script> <!--適当に指定してください-->
28
+
29
+ <script>
30
+
31
+ $(function() {
32
+
33
+ $("#droppable")
34
+
35
+ .on("dragenter dragover",function(e){e.preventDefault();return false;})
36
+
37
+ .on("drop", function(e){
38
+
39
+ var file = e.originalEvent.dataTransfer.files[0];
40
+
41
+ var fr = new FileReader();
42
+
43
+ fr.onload = function(e) {
44
+
45
+ var fd = new FormData();
46
+
47
+ fd.append("userfile", new Blob([e.target.result],{"type":file.type}),file.name );
48
+
49
+ $.ajax({
50
+
51
+ url:"recv.php",
52
+
53
+ type:"post",
54
+
55
+ data:fd,
56
+
57
+ dataType:"json",
58
+
59
+ processData: false,
60
+
61
+ contentType: false,
62
+
63
+ success:function(data){
64
+
65
+ console.log(data);
66
+
67
+ },
68
+
69
+ });
70
+
71
+ };
72
+
73
+ fr.readAsArrayBuffer(file);
74
+
75
+ e.preventDefault();
76
+
77
+ return false;
78
+
79
+ });
80
+
81
+ });
82
+
83
+ </script>
84
+
85
+ <div id="droppable" style="border: gray solid 1em; padding: 2em;">
86
+
87
+ ファイルをドロップしてください。
88
+
89
+ </div>
90
+
91
+ ```
92
+
93
+ - 受け先:recv.php
94
+
95
+ ```PHP
96
+
97
+ <?php
98
+
99
+ //$_FILESで受けられる、あえて戻り値は返さなくてもいい
100
+
101
+ print json_encode($_FILES["userfile"]);
102
+
103
+ ?>
104
+
105
+ ```