上傳含有文件的form表單(使用formdata)


HTML (使用了bootstrap3樣式)

 1                             <form class="form-horizontal" role="form" id="siteForm">
 2                                 <div class="form-group">
 3                                     <label for="siteTitle" class="col-sm-2 control-label">景點名稱</label>
 4                                     <div class="col-sm-5">
 5                                         <input type="text" class="form-control" id="siteTitle" name="siteTitle">
 6                                     </div>
 7                                 </div>
 8                                 <div class="form-group">
 9                                     <label for="siteProvince" class="col-sm-2 control-label">景點所在省份</label>
10                                     <div class="col-sm-5">
11                                         <select class="form-control" id="siteProvince" name="province" onchange="doProvAndCityRelation(this)">
12                                             <option value='-1'>請選擇省份</option>
13                                         </select>
14                                     </div>
15                                 </div>
16                                 <div class="form-group">
17                                     <label for="siteCity" class="col-sm-2 control-label">景點所在城市</label>
18                                     <div class="col-sm-5">
19                                         <select class="form-control" id="siteCity" name="city">
20                                             <option value='-1'>請選擇城市</option>
21                                         </select>
22                                     </div>
23                                 </div>
24                                 <div class="form-group">
25                                     <label for="picturePath" class="col-sm-2 control-label">景點圖片</label>
26                                     <div class="col-sm-5">
27                                         <input type="file" class="form-control" id="picturePath" name="file">
28                                     </div>
29                                 </div>
30                                 <div class="form-group">
31                                     <label for="siteDescription" class="col-sm-2 control-label">景點描述</label>
32                                     <div class="col-sm-5">
33                                         <textarea rows="3" class="form-control" id="siteDescription" name="description"></textarea>
34                                     </div>
35                                 </div>
36                                 <input type="hidden" class="form-control" name="country" value="CN">
37                             </form>

JS

$("#siteSubmit").click(function () {
   let siteTitle = $.trim($("#siteTitle").val());
   if(siteTitle === ""){
       bootbox.alert("景點標題不能為空");
       return;
   }
   let siteProvince = $.trim($("#siteProvince").val());
    if(siteProvince === "-1"){
        bootbox.alert("請選擇景點所屬省份");
        return;
    }
    let siteCity = $.trim($("#siteCity").val());
    if(siteCity === "-1"){
        bootbox.alert("請選擇景點所屬城市");
        return;
    }
   let url = basePath+"/site/add.action";
   let data = new FormData(document.getElementById("siteForm"));
   data.append("file",$('#picturePath').get(0).files[0]);
   if(data.get("file").name===""){    // 校驗file文件是否存在
       bootbox.alert("請選擇景點圖片");
       return;
   }
    $.ajax({
        url : url,
        type : "post",
        data : data,
        dataType : "json",
        contentType : false,
        processData : false,
        success : function(result) {
            if(result.success===200){
                bootbox.alert("上傳成功");
                $("#siteForm")[0].reset();
            }
            closeLoading();
        },
        error : function () {
            closeLoading();
        }
    });
});

Java(springmvc)

@RestController
@RequestMapping("/site")
public class SiteController {

    @Autowired
    private SiteMapper siteMapper;

    @RequestMapping(value="/add", method = RequestMethod.POST)
    public JSONObject add(HttpSession session,
                          @RequestParam(value = "file") MultipartFile file,
                          Site site){
      // 你的業務邏輯
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM