js ajax上传file文件上传,使用ajaxfileupload.js实现上传文件功能
使用ajaxfileupload.js實現上傳文件功能
2019-01-01
編程之家
https://www.jb51.cc
編程之家收集整理的這篇文章主要介紹了使用ajaxfileupload.js實現上傳文件功能,編程之家小編覺得挺不錯的,現在分享給大家,也給大家做個參考。
一直以來上傳文件都是使用form表單上傳文件,也看到過有人使用js上傳文件,不過看起來蠻簡單的也就沒有怎么去理會。今天突然要使用這種方式上傳文件,期間還遇到點問題。因此就記錄下來,方便以后遇到這樣的問題可以查看。
首先就是引入js和ajaxfileupload的文件,這個不需要多說。
然后就是ajax請求后臺地址。代碼如下:
Box pos-rel">
文件
$("#upload").on("change",function(){
$.ajaxFileUpload({
url : '/test/user/imgUpload',//后臺請求地址
type: 'post',//請求方式 當要提交自定義參數時,這個參數要設置成post
secureuri : false,//是否啟用安全提交,默認為false。
fileElementId : 'upload',// 需要上傳的文件域的ID,即的ID。
dataType : 'json',//服務器返回的數據類型。可以為xml,script,json,html。如果不填寫,jQuery會自動判斷。如果json返回的帶pre,這里修改為json即可解決。
success : function (json,status) {//提交成功后自動執行的處理函數,參數data就是服務器返回的數據。
alert(json.retMsg);
},error : function (json,status,e) {//提交失敗自動執行的處理函數。
}
});
});
前臺代碼完成就開始開發后臺代碼了。
上傳文件
* @author liaowp
*
*/
@Controller
@Path("/user")
public class UploadImg {
@Path("/imgUpload")
@POST
@Produces("application/json; charset=utf-8")
@Consumes(MediaType.MULTIPART_FORM_DATA )
@BadgerFish
public JSONObject upload(@QueryParam("orderId") String orderId,@Context HttpServletRequest request,@Context HttpServletResponse response) {
JSONObject jsonobj = new JSONObject();
String file_path=request.getSession().getServletContext().getRealPath("/")+File.separator+"corpfile"+File.separator;//文件存儲路徑
String upload_file_path="";
File file =new File(file_path);
if(!file.exists() && !file.isDirectory()){ //如果文件夾不存在則創建
file.mkdir();
upload_file_path=file_path;
}else{
upload_file_path=file_path;
}
DiskFileItemFactory factory = new DiskFileItemFactory(); // 設置工廠
factory.setRepository(new File(file_path));// 設置文件存儲位置
factory.setSizeThreshold(2048 * 1024);// 設置大小,如果文件小于設置大小的話,放入內存中,如果大于的話則放入磁盤中
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");// 這里就是中文文件名處理的代碼,其實只有一行
String fileName = "";
Listlist;
JSONObject jsonobj = new JSONObject();
try {
list = upload.parseRequest(request);
for (FileItem item : list) {
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString("utf-8");
} else {
String name = item.getFieldName();
String value = item.getName();
fileName =name + ".jpg";
if (item.getSize() > 10485760) {//您好,上傳文件要小于10M!
jsonobj.put("retCode","100");
jsonobj.put("retMsg","您好,上傳文件要小于10M!"):
} else {//上傳成功
item.write(new File(upload_file_path,fileName));
System.out.println(File.separator + "corpfile" + File.separator + fileName);
jsonobj.put("retCode","0");
jsonobj.put("retMsg","您好,上傳成功!");
}
}
}
} catch (Exception e) {//上傳失敗
e.printStackTrace();
jsonobj.put("retCode","9999"); jsonobj.put("retMsg","您好,文件上傳失敗,");
}
return jsonobj;
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持編程之家。
總結
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
總結
以上是生活随笔為你收集整理的js ajax上传file文件上传,使用ajaxfileupload.js实现上传文件功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php xss漏洞扫描工具,XSS漏洞扫
- 下一篇: 数字图像处理(2)——数字图像获取