回答編集履歴

4

コメント

2017/03/06 07:36

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  });
78
78
 
79
- setTimeout(function(){console.log(fd)},3000);
79
+ // setTimeout(function(){console.log(fd)},3000);//デバグ用
80
80
 
81
81
  Promise.all( prm ).then(function(){
82
82
 
@@ -90,7 +90,7 @@
90
90
 
91
91
  "data":fd,
92
92
 
93
- // "dataType":"json",
93
+ // "dataType":"json",//とりあえずjson以外で送ってうまくいったらjsonにする
94
94
 
95
95
  "processData": false,
96
96
 

3

修正

2017/03/06 07:36

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -124,6 +124,8 @@
124
124
 
125
125
  <form method="post" enctype="multipart/form-data">
126
126
 
127
+ <input type="text" name="comment"><br>
128
+
127
129
  <input type="file" name="img1"><br>
128
130
 
129
131
  <input type="file" name="img2"><br>

2

追記

2017/03/06 07:34

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -41,6 +41,12 @@
41
41
  var file=[];
42
42
 
43
43
  var fd = new FormData();
44
+
45
+ $(this).parents('form').find('input[type=text]').each(function(i){
46
+
47
+ fd.append($(this).attr('name'),$(this).val());
48
+
49
+ });
44
50
 
45
51
  $(this).parents('form').find('input[type=file]').each(function(i){
46
52
 

1

追記

2017/03/06 07:33

投稿

yambejp
yambejp

スコア114769

test CHANGED
@@ -19,3 +19,129 @@
19
19
 
20
20
 
21
21
  で状況確認ください
22
+
23
+
24
+
25
+ # 追記
26
+
27
+
28
+
29
+ ```javascript
30
+
31
+ $(function() {
32
+
33
+ $('input[type=submit][value=upload]').on('click',function(e){
34
+
35
+ e.preventDefault();
36
+
37
+ var prm=[];
38
+
39
+ var me=[];
40
+
41
+ var file=[];
42
+
43
+ var fd = new FormData();
44
+
45
+ $(this).parents('form').find('input[type=file]').each(function(i){
46
+
47
+ me[i] = $(this);
48
+
49
+ file[i]=$(this).prop('files')[0];
50
+
51
+ if(file[i]!==undefined){
52
+
53
+ prm[i]= new Promise(function(resolver){
54
+
55
+ var fr = new FileReader();
56
+
57
+ fr.addEventListener("load", function(e){
58
+
59
+ fd.append(me[i].attr('name'), new Blob([e.target.result],{"type":file[i].type}),file[i].name );
60
+
61
+ resolver(this);
62
+
63
+ });
64
+
65
+ fr.readAsArrayBuffer(file[i]);
66
+
67
+ });
68
+
69
+ }
70
+
71
+ });
72
+
73
+ setTimeout(function(){console.log(fd)},3000);
74
+
75
+ Promise.all( prm ).then(function(){
76
+
77
+ console.log(fd);
78
+
79
+ $.ajax({
80
+
81
+ "url":"recv.php",
82
+
83
+ "type":"post",
84
+
85
+ "data":fd,
86
+
87
+ // "dataType":"json",
88
+
89
+ "processData": false,
90
+
91
+ "contentType": false,
92
+
93
+ "success":function(data){
94
+
95
+ console.log(data);
96
+
97
+ },
98
+
99
+ "error":function(xhr,error){
100
+
101
+ console.log(error);
102
+
103
+ },
104
+
105
+ });
106
+
107
+ });
108
+
109
+ });
110
+
111
+ });
112
+
113
+ </script>
114
+
115
+ ```
116
+
117
+ ```HTML
118
+
119
+ <form method="post" enctype="multipart/form-data">
120
+
121
+ <input type="file" name="img1"><br>
122
+
123
+ <input type="file" name="img2"><br>
124
+
125
+ <input type="file" name="img3"><br>
126
+
127
+ <input type="submit" value="upload">
128
+
129
+ </form>
130
+
131
+ ```
132
+
133
+
134
+
135
+ 受け側テスト
136
+
137
+ ```PHP
138
+
139
+ <?PHP
140
+
141
+ print_R($_POST);
142
+
143
+ print_R($_FILES);
144
+
145
+ ?>
146
+
147
+ ```