1. 程式人生 > >通過前端上傳圖片等文件的方法

通過前端上傳圖片等文件的方法

一個 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 方法接收到了  

通過前端上傳圖片等文件的方法