日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前整理過SSM的文件上傳,這次直接用代碼了。
前臺頁面和js

//form表單<form id= "uploadForm" enctype="multipart/form-data"><input type="file" name="uploadfile" id="uploadfile"/><input type="button" value="上傳" onclick="doUpload()" class="btn btn-success fileinput-button"/><input type="hidden" name="pictureCertificate" id="pictureCertificate" value=""></form>//js代碼function doUpload() {/*var formData = new FormData();formData.append("uploadfile", document.getElementById("uploadfile").files[0]);*/var formData = document.getElementById("uploadfile").files[0]; // js 獲取文件對象if (typeof (formData) == "undefined" || formData.size <= 0) {alert("請選擇圖片!");return;} else {var formData = new FormData();formData.append("uploadfile", document.getElementById("uploadfile").files[0]);}//var formData = new FormData($( "#uploadForm" )[0]);//alert(formData);$.ajax({url: '<%=basePath%>/creditBill/fileUpload.do' ,type: 'POST',data: formData,async: false,cache: false,contentType: false,processData: false,success: function (returndata) {//$("#pictureCertificate").val(returndata);if(returndata.code == "3") {alert("上傳圖片格式不正確!");} else if (returndata.code == "0") {alert("上傳文件不得大于500k!");} else if (returndata.code == "404" || returndata.code == "1") {alert("上傳憑證失敗!");} else {alert("上傳憑證成功!");$("#pictureCertificate").val(returndata.path);}},error: function (returndata) {alert("上傳憑證失敗!");}});}

后臺代碼

/*** 圖片上傳* @param* @param uploadfile* @param request* @return*/@RequestMapping("/fileUpload")@ResponseBodypublic UploadResult handleFormUpload(@RequestParam("uploadfile") List<MultipartFile> uploadfile,HttpServletRequest request) {UploadResult result = new UploadResult();//判斷上傳文件是否存在if (!uploadfile.isEmpty() && uploadfile.size() > 0) {//循環輸出上傳的文件for (MultipartFile file : uploadfile) {//獲取上傳文件的原始名稱String oringinalFilename = file.getOriginalFilename();//獲取源文件名后綴String prefixName = FilenameUtils.getExtension(oringinalFilename);int fileSize = 500000;//圖片限制在500k以內if(file.getSize() > fileSize) {result.setCode("0");return result;} else if(prefixName.equalsIgnoreCase("jpg")|| prefixName.equalsIgnoreCase("png")|| prefixName.equalsIgnoreCase("jpeg")|| prefixName.equalsIgnoreCase("pneg")) {//設置上傳文件的保存地址目錄String dirPath = request.getSession().getServletContext().getRealPath("/fileupload/");//區分windows和linux的\ 和 ///String dirPath = "E:"+System.getProperty("file.separator")+"uploadfile" + System.getProperty("file.separator");//String dirPath = System.getProperty("file.separator") + "usr" + System.getProperty("file.separator") + "local"// + System.getProperty("file.separator")+"imgbak"+System.getProperty("file.separator");System.out.println("dirpath==" + dirPath);File filePath = new File(dirPath);//如果文件地址不存在 則創建目錄if (!filePath.exists()) {filePath.mkdirs();}//使用時間格式重新命名String newFilename = VeDate.getNo(4) + "."+prefixName;System.out.println("/fileupload/" + newFilename);try {//使用MultipartFilr接口的方法完成文件上傳到指定位置file.transferTo(new File(dirPath + newFilename));String filepath = "/fileupload/" + newFilename;result.setPath(filepath);} catch (IOException e) {result.setCode("1");return result;}} else {System.out.println("上傳圖片格式不正確");result.setCode("3");return result;}}//上傳成功return result;} else {result.setCode("404");return result;}}

UploadResult 實體類

/*** @author * @version V1.0* @Description:* @date 2018/1/23 17:03*/ public class UploadResult {/*** 錯誤代碼*/private String code;/*** 上傳文件路徑*/private String path;//…… }

小結

工作總結,都是文件上傳,只是情況不同,本來想用前端文件上傳的框架,結果半天都不行,就用了Ajax的上傳方式,結果還好。

轉載于:https://www.cnblogs.com/black-spike/p/8337140.html

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。