请通过浏览器功能收藏网页

ajax 异步上传文件框架使用 servlet 技术

发布时间:2018-08-08 13:19:36  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏


异步上传图片,对于多图片上传的系统来说是个不错的提高效率的解决办法

异步运行框架所需jar包 及 js 打包如右侧:js 脚本上传文件操作.zip


页面代码: 引入两个JS包

jquery-3.2.1.min.js

ajaxfileupload.js

function uploadImage(fileId) {             

        $.ajaxFileUpload({

           

url:'/jspproject/servlet/picUploadServlet',//用于文件上传的服务器端请求地址

secureuri:false,//一般设置为false

fileElementId:fileId,//文件上传空间的id属性  <input type="file" id="file" name="file" /> 

dataType: 'text',//返回值类型 一般设置为json

// data: {'faceurl':artType},扩展参数

success: function (data, status)  //服务器成功响应处理函数

{

if(status){

 alert(data);

 $("#dd").css("display","block");

}

//var fileInfo = jQuery.parseJSON(data);

//alert("上传成功,返回图片路径:"+fileInfo.file_path);

},

error: function(XMLHttpRequest, textStatus, errorThrown) {

                alert(XMLHttpRequest.status);

                alert(XMLHttpRequest.readyState);

               alert(textStatus);

             }

});

return false;

}


     input id="filePathId" type="file" name="photo" size="28"  value="浏览" 

     input type="button" class="btnInput" id="btnOK" value="上传" onclick="uploadImage('filePathId');"




后台servlet上传操作:

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

DiskFileItemFactory dfif = new DiskFileItemFactory();

ServletFileUpload sfu = new ServletFileUpload(dfif);

try {

Listitems = sfu.parseRequest(request);

for (int i = 0; i < items.size(); i++) {

FileItem item = items.get(i);

// 要判断是一个普通的表单域还是上传文件域

if (item.isFormField()) {

// 是一个普通的表单域

String name = item.getFieldName();

String value = item.getString();

System.out.println(name + ":" + value);

} else {

// 上传文件域,要将文件保存在服务器端

ServletContext sc = this.getServletContext();

// 获得实际部署时物理路径

String path = sc.getRealPath("upload");

System.out.println(path);

// 获得上传文件的名称

String fileName = item.getName();

System.out.println(fileName);

File temp = new File(path);

if(!temp.exists()){

temp.mkdir();

}

File file = new File(path + "//" + fileName);

System.out.println(file);

item.write(file);

}

}

} catch (Exception e) {

e.printStackTrace();

response.getWriter().write("添加失败");

}

response.getWriter().write("添加成功");

}



如有疑问 请留言 欢迎提供建议

评论已有 0