附件是例子程序,欢迎下载。
用到两个jar包
commons-io-xx.jar
commons-fileupload-xx.jar
xx代表版本号
新建一个普通的java web工程
前端页面jsp代码:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Ajax File Uploader Plugin For Jquery</title>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="ajaxfileupload.js"></script>
- <script type="text/javascript">
- function ajaxFileUpload() {
- $("#loading").ajaxStart(function() {
- $(this).show();
- }).ajaxComplete(function() {
- $(this).hide();
- });
- $.ajaxFileUpload({
- url : 'upload',// servlet请求路径
- secureuri : false,
- fileElementId : 'fileToUpload',// 上传控件的id
- dataType : 'json',
- data : {username : $("#username").val()}, // 其它请求参数
- success : function(data, status) {
- if(data.msg) {
- alert(data.msg);
- }
- },
- error : function(data, status, e) {
- alert('上传出错');
- }
- })
- return false;
- }
- </script>
- </head>
- <body>
- <h1>Ajax文件上传例子,JAVA版</h1>
- <img id="loading" src="loading.gif" style="display: none;">
- <form name="form" action="" method="POST" enctype="multipart/form-data">
- 用户名:<input type="text" id="username" name="username"> <br>
- <input id="fileToUpload" type="file" size="45" name="fileToUpload"
- class="input">
- <button class="button" onclick="return ajaxFileUpload();">上传</button>
- </form>
- </body>
- </html>
服务器端servlet核心代码:
- protected void doGet(HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- request.setCharacterEncoding("utf-8"); // 设置编码
- response.setCharacterEncoding("utf-8");
- response.setContentType("text/html;charset=UTF-8");
- // 获得磁盘文件条目工厂
- DiskFileItemFactory factory = new DiskFileItemFactory();
- // 如果没以下两行设置的话,上传大的文件会占用很多内存,
- // 设置暂时存放的存储室 ,这个存储室,可以和最终存储文件的目录不同
- /**
- * 原理 它是先存到 暂时存储室,然后在真正写到 对应目录的硬盘上, 按理来说 当上传一个文件时,其实是上传了两份,第一个是以 .tmp
- * 格式的 然后再将其真正写到 对应目录的硬盘上
- */
- factory.setRepository(new File(TEMP_FOLDER));
- // 设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室
- factory.setSizeThreshold(1024 * 1024);
- // 高水平的API文件上传处理
- ServletFileUpload upload = new ServletFileUpload(factory);
- try {
- // 提交上来的信息都在这个list里面
- // 这意味着可以上传多个文件
- // 请自行组织代码
- List<FileItem> list = upload.parseRequest(request);
- // 获取上传的文件
- FileItem item = getUploadFileItem(list);
- // 获取文件名
- String filename = getUploadFileName(item);
- System.out.println("存放目录:" + PATH_FOLDER);
- System.out.println("文件名:" + filename);
- // 真正写到磁盘上
- item.write(new File(PATH_FOLDER, filename)); // 第三方提供的
- // 输出信息,前端页面获取,这里用的json格式
- PrintWriter writer = response.getWriter();
- writer.print("{");
- writer.print("msg:\"文件大小:"+item.getSize()+",文件名:"+filename+"\"");
- writer.print("}");
- writer.close();
- } catch (FileUploadException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
别忘了web.xml配置servlet
- <servlet>
- <servlet-name>uploadProcessorServlet</servlet-name>
- <servlet-class>upload.UploadProcessorServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>uploadProcessorServlet</servlet-name>
- <url-pattern>/upload</url-pattern>
- </servlet-mapping>
相关推荐
ajax异步文件上传,servlet处理
SpringMVC+Ajax异步文件上传+短视频背景+a标签绑定文件域
ajax异步上传源码,后台servlet处理 改编自http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ 这个后台是PHP版的,我把它改成了JAVA版的
java做的ajax异步上传 图片或文件的demo 下载直接可以在eclipse的Tomact的里面运行!注意(配置自己的 jdk和tomcat!)
asp.net ajax异步上传文件 代码是从一系统中取出来的并作了修改..感觉非常好用,借助此demo还可以实现异步读取信息 验证用户名 更改信息等... 如出现object error错误 请检查function.js submitUrl参数的提交路径...
AJAXFileUpload ajax 异步文件上传 进度条AJAXFileUpload ajax 异步文件上传 进度条
ajax 异步上传 需要的js文件 ajax 异步上传
ajax异步上传文件实现,主要是使用h5的技术,大家可以试试看
很好的ajax异步上传插件是jquery
ajax异步上传文件插件,ajax异步上传文件插件,ajax异步上传文件插件,无奈要50个字
springmvc上传文件+ajax异步上传不刷新页面;springmvc上传文件+ajax异步上传不刷新页面
Ajax上传文件Demo以及Ajax上传文件前的预览效果实现。详情见博客http://blog.csdn.net/u012702547/article/details/77585111
AJAXFileUpload ajax 异步文件上传 进度条
这个是使用JavaScript中FormData格式化表单数据使之成为key/value,使用ajax异步上传数据的demo。 包含html和服务端解析数据并保存文件
企业级项目实例,功能包括用户登录、列表展示、消息推送、文件上传,包含技术有异步文件上传、文件包解压处理,进度表、servlet、ajax、jQuery等
jquery ajax servlet json简单demo
NULL 博文链接:https://1197581932.iteye.com/blog/2330457
该demo实现前端无刷新请求,实现图片批量上传,后台存储数据,并将数据通过JSON形式反馈给android端显示网络图片
解压即用,js文件包含ajax图片文件上传,手机号码,身份证等必要常用效验方法,后台图片压缩处理。文件上传等,可自行改造方便好用。ssm,ssh框架下都测试过完全ok。