teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/12/21 04:26

投稿

yambejp
yambejp

スコア117921

answer CHANGED
@@ -29,4 +29,46 @@
29
29
  <div id="exec">button</div>
30
30
  <div id="result"></div>
31
31
 
32
+ ```
33
+
34
+ # 追記
35
+ 状況がいまいちまだわからないのですが
36
+ formdataをつかってajaxでpostしてるんですからfilereaderを使う意義がありません
37
+ 同じデータをダブルで送ることになりませんか?
38
+
39
+ ```javascript
40
+ $(function(){
41
+ $('#exec').on('click',function() {
42
+ var form = $("form#imageform");
43
+ var formData = new FormData( $(form).get(0) );
44
+ var file = $('#image').prop('files')[0];
45
+ var reader = new FileReader();
46
+ var reg=new RegExp("image.*");
47
+ if(!file.type.match(reg)) return false;
48
+ reader.onload=function(e){
49
+ formData.append("userfile", new Blob([reader.result],{"type":file.type}),file.name );
50
+ $.ajax({
51
+ url: $(form).attr('action'),
52
+ type: 'post',
53
+ data: formData,
54
+ processData: false,
55
+ contentType: false,
56
+ }).done(function(data) {
57
+ $('#result').html(data);
58
+ }).fail(function(xhr,err) {
59
+ alert(err);
60
+ });
61
+ };
62
+ reader.readAsArrayBuffer(file);
63
+ });
64
+ });
65
+
66
+ ```
67
+ ```HTML
68
+ <form class='ajax_submit' method="post" action="y.php" id="imageform" enctype="multipart/form-data">
69
+ <input type="file" id="image" name="image" accept="image/*">
70
+ </form>
71
+ <div id="exec">button</div>
72
+ <div id="result"></div>
73
+
32
74
  ```