通過前端上傳圖片等文件的方法
阿新 • • 發佈:2018-07-31
一個 click spa string 追加 fun span 框架 new
1 <script type="text/javascript"> 2 3 ##先禁止form表自動提交 4 $(‘form‘).submit(function () { 5 return false 6 }) 7 8 ##點擊提交 9 $(‘#add_it‘).click(function(){ 10 var formData = new FormData($("form")[0]); //創建一個formData對象,我這裏是先把form表裏數據 $(‘form‘)[0]都放進去了,因為有圖片文件,不能通過append追加進去 11 12 // formData.append();13 var spec_str = JSON.stringify(spec); //對象轉化為json字符串 14 var note_str = JSON.stringify(note); //對象轉化為json字符串 15 16 ## 下面這些就是可以通過append 追加除了form外的數據進去,這樣PHP後臺接收的時候除了上傳文件用$_FILES接收, 其他都可以用$_POST接收到(post方式) 17 formData.append(‘spec‘,spec_str); 18 formData.append(‘note‘,note_str);19 formData.append(‘cid‘,cid); 20 formData.append(‘gid‘,gid); 21 formData.append(‘menu_id‘,menu_id); 22 23 ##這裏要用ajax方法 24 $.ajax({ 25 url: ‘/shopmenu/edit_goods‘, 26 type: ‘POST‘, 27 // data: new FormData($("form")[0]), 28 data: formData, 29 cache: false, #必須 30 processData: false, #必須 31 contentType: false, #必須 32 dataType: ‘json‘, 33 success: function (data) { 34 // var data = $.parseJSON(data); 35 // console.log(data);return; 36 if(data.result){ 37 layer.alert(data.msg, {icon: 6}, function(){ 38 parent.location.reload(); 39 ##下面是layui框架寫法的刷新,不必理會 40 var index = parent.layer.getFrameIndex(window.name); 41 //關閉當前frame 42 parent.layer.close(index); 43 return; 44 }); 45 }else{ 46 layer.msg(data.msg, {icon: 2, time:3000});return; 47 } 48 } 49 }); 50 }); 51 </script>
## 上面前端寫好後,PHP後端就可以接收到這些信息
1 $_FILES ##因為是通過form表單上傳的,所以都是通過input中的name名字來獲取值 2 ##例如:$_FILES[‘goods_img‘] 3 4 #判斷是否有文件上傳 5 if (!empty($_FILES[‘goods_img‘]) && $_FILES[‘goods_img‘][‘error‘] == 0) { 6 echo "有文件上傳,所以error為0且不為空”; 7 }else{ 8 echo "無文件上傳"; 9 } 10 11 ##另外通過post方式傳過來的都可以用 $_POST 方法接收到了
通過前端上傳圖片等文件的方法