SpringMVC-文件异步上传

来源:互联网 发布:mac 外置显卡 编辑:程序博客网 时间:2024/05/17 18:03
<head> <script src="jquery-2.1.4.js"></script>    <script>        $(function () {            $("#upload").click(function () {                $("#imgWait").show();                var formData = new FormData();                formData.append("myfile", document.getElementById("file1").files[0]);                   $.ajax({                    url: "upload.ashx",                    type: "POST",                    data: formData,                    /**                    *必须false才会自动加上正确的Content-Type                    */                    contentType: false,                    /**                    * 必须false才会避开jQuery对 formdata 的默认处理                    * XMLHttpRequest会对 formdata 进行正确的处理                    */                    processData: false,                    success: function (data) {                        if (data.status == "true") {                            alert("上传成功!");                        }                        if (data.status == "error") {                            alert(data.msg);                        }                        $("#imgWait").hide();                    },                    error: function () {                        alert("上传失败!");                        $("#imgWait").hide();                    }                });            });        });    </script></head><body>           选择文件:<input type="file" id="file1" /><br />        <input type="button" id="upload" value="上传" />        <img src="wait.gif" style="display:none" id="imgWait" />   </body>
后台:

@RequestMapping("/solutionSubmit")
public ModelAndView solutionSubmit(HttpSession session,@RequestParam("file")CommonsMultipartFile file,HttpServletRequest request,ModelAndView model){
String username = request.getParameter("username");
String fileName = file.getOriginalFilename();//获取文件名
int pid = Integer.parseInt(request.getParameter("pid"));
//String path = request.getSession().getServletContext().getRealPath("/solution");//开发期间,文件先放在这里,发布之后更换存储目录String path = req.getRealPath("/solution");
String path = request.getRealPath("/solution");
InputStream is = null;
OutputStream os = null;
try {
is = file.getInputStream();
os = new FileOutputStream(new File(path,fileName));
int length = 0;
byte[] buffer = new byte[1024];
while((length = is.read(buffer)) != -1){
os.write(buffer, 0, length);
}
boolean flag = service.saveSolutionToDB(username, path + "/" + fileName);
boolean mappingResult = service.insertPidMappingSid(pid);
if(flag && mappingResult){
model.addObject("msg", "上传成功,请等待专家审核,通过审核后电话联系您!");
model.setViewName("jsp/solutionSubmitStatus");
}else{
model.addObject("msg", "上传失败,请重新上传!");
model.setViewName("jsp/solutionSubmitStatus");
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return model;
}

原创粉丝点击