`

Ext ajax 上传文件

    博客分类:
  • ext
阅读更多
页面代码
<form id="upForm">
		请选择文件:<input type="file" name="file1"><br /> 文件描述:
		<textarea cols="70" rows="5" name="desc"></textarea>
		<br /> <input type="button" id="btn" value="上传">
	</form>

	<script type="text/javascript">
		Ext.onReady(function() {
			Ext.MessageBox.alert("测试", "测试Ext是否运行");
			Ext.get("btn").on("click", function() {
				Ext.Ajax.request({
					url : "FileUpServlet",
					isUpload : true,
					form : "upForm",
					success : function(response) {
						Ext.MessageBox.alert("上传成功", response.responseText);
					}
				});
			});
		});
	</script>

后台servlet代码
public class FileUpServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public FileUpServlet() {
		super();
	}

	@Override
	public void service(ServletRequest request, ServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		ServletContext ctx = this.getServletContext();
		String userFilePath = ctx.getRealPath("userFile");

		DiskFileItemFactory factory = new DiskFileItemFactory();
		factory.setSizeThreshold(1024 * 1024);
		factory.setRepository(new File(userFilePath));

		ServletFileUpload upload = new ServletFileUpload(factory);
		upload.setSizeMax(10 * 1024 * 1024);

		try {

			List<FileItem> fileItems = upload.parseRequest((HttpServletRequest) request); 
			System.out.println(fileItems.size());
			Iterator<FileItem> iter = fileItems.iterator();

			while (iter.hasNext()) {
				FileItem fi = iter.next();

				if (fi.isFormField()) {

					String fieldName = fi.getFieldName();
					String fieldvalue = fi.getString(); 

					System.out.println("name:" + fieldName);
					System.out.println("value:" + fieldvalue);
				} else {
					String filePath = fi.getName();
					if (filePath != null) {
						System.out.println(filePath);
					}
					if (StringUtil.isBlank(filePath)) {
						continue;
					}
					String extensionName = filePath.substring(
							filePath.lastIndexOf("."), filePath.length());
//					String contentType = fi.getContentType();
//					boolean isInMemory = fi.isInMemory();
//					long sizeInBytes = fi.getSize();

					String url = userFilePath +"\\"+ StringUtil.getUUID()
							+ extensionName;
					File uploadedFile = new File(url);
					if (!uploadedFile.exists()) {
						uploadedFile.getParentFile().mkdirs();
					}

					fi.write(uploadedFile);
				}
			}
			
			PrintWriter out = response.getWriter();
			out.print("创建成功");
			out.flush();
			out.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
分享到:
评论

相关推荐

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动...

    JSP网盘(运用Struts Ext上传技术).rar

    一个开源的JSP网盘程序,运用Struts Ext2上传文件,可视化操作。因环境较复杂,没有测试,不过从源码结构来看好像很完整,而且源代码也很新,可以作为学**JSP下的AJAX技术有帮助,源码中包含类的源文件。

    开源ASP.NET批量上传文件组件 - SwfUpload-Ext

    1、 完全的AJAX方式用户体验好 2、 多文件可一次选定并添加 3、 文件添加后仍然可以有禁止上传的操作,更方便 4、 客户端和服务器端采用了direct数据交互方式,此控件移植到PHP或JAVA几乎无需对客户端进行修改

    ajax实现的文件上传

    Web2.0,是相对Web1.0的新的一类互联网应用的统称。由Web1.0单纯通过网络浏览器浏览html网页模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。

    extJS中常用的4种Ajax异步提交方式

    /** 代码如下: * 第一种Ajax提交方式 * 这种方式需要直接使用ext Ajax方法进行提交 * 使用这种方式,需要将待传递的参数进行封装 * @return */ function saveUser_ajaxSubmit1() { Ext.Ajax.request( { url : ‘user...

    Ext 开发指南 学习资料

    4.9. 还要做文件上传哟 4.10. 非想非想,单选框多选框 4.10.1. 多选呢checkbox 4.10.2. 单选呢radio 4.11. 自动把数据填充到form里 5. 雀跃吧!超脱了一切的弹出窗口。 5.1. 呵呵~跳出来和缩回去总给人惊艳的感觉。 ...

    EXT2.0中文教程

    4.9. 还要做文件上传哟 4.10. 非想非想,单选框多选框 4.10.1. 多选呢checkbox 4.10.2. 单选呢radio 5. 雀跃吧!超脱了一切的弹出窗口。 5.1. 呵呵~跳出来和缩回去总给人惊艳的感觉。 5.2. 先看看最基本的三个例子...

    ajaxupload.js

    new AjaxUpload(button, { action: 'servlet/import', name: 'newFileName',//更改上传的文件名 data : { 'key1' : "7月份", 'key2' : "8月份", 'key3' : "9月份" }, onSubmit : function...

    Ext+JS高级程序设计.rar

    8.2.4 使用DirectSubmit上传文件 235 8.3 Grid组件 238 8.3.1 一个结合DataWrite和RowEditor的Grid示例 238 8.3.2 在CRUD操作中restful的设置以及使用Ext.Direct的问题 247 8.4 ListView控件 248 8.5 本章小结 251 ...

    Ext+struts2+spring+hibernate做的一个CRUD实例

    用EXT+struts2+spring+hibernate做...另外因包太多无法上传,所以请大家自己在myeclipse里面加上spring和hibernate,struts2运行的jar包,jar列表请看根目录下面的txt文件。另外,不会使用的不要再后面骂人,很无趣的!

    PHP AjaxForm提交图片上传并显示图片

    本文实例为大家分享了PHP AjaxForm提交图片上传并显示图片的具体代码,供大家参考,具体内容如下 PHP dofile.php 文件上传源码 &lt;?php $file_upload = "upload/"; $file_allow_ext='gif|jpg|jpeg|png|gif|zip|rar...

    使用jQuery ajaxupload插件实现无刷新上传文件

    项目中会经常用到AJAX无刷新上传图片,但是iframe上传和flash插件都是比较复杂的,所以就找了一个jquery的插件。 代码如下 使用方法如下 [removed] $(function () { var button = $('#upload'); new AjaxUpload...

    EXT教程EXT用大量的实例演示Ext实例

    4.9. 还要做文件上传哟 4.10. 非想非想,单选框多选框 4.10.1. 多选呢checkbox 4.10.2. 单选呢radio 5. 雀跃吧!超脱了一切的弹出窗口。 5.1. 呵呵~跳出来和缩回去总给人惊艳的感觉。 5.2. 先看看最基本的三个...

    php上传进度条APC

    因为很多人同时上传文件的话,不同文件的钩子不能相同啊。系统会把 APC_UPLOAD_PROGRESS域的值前面加上'upload_'生成钩子名称。在其它的php程序中就可以用apc_fetch()这个函数得到该文件的一系列信息了。假设APC_...

    Ext Js权威指南(.zip.001

    7.2.5 使用ajax处理数据的代理:ext.data.proxy.ajax与ext.data.proxy.rest / 308 7.2.6 跨域处理数据的代理:ext.data.proxy.jsonp / 312 7.2.7 为ext.direct服务的代理:ext.data.proxy.direct / 312 7.2.8 ...

    Ext.ux.form.UploadPanel.js

    好东西拿出来大家分享,可以用做多文件上传的组建

    extjs4.0 实现了主页面框架 动态菜单 例子 表单 ajax

    有人说少了17个jar,那些jar与工程无关,从classpath里面去掉就好了,可能下载这位仁兄也是新手吧,再有就是两个没用的类文件直接删除即可,至于extjs自己带的js和样式文件没有上传考虑是会增加上传文件大小, ...

    QMIS项目文件管理系统part2

     Ext.net1.2.0(使用Ext.net搭建了整个系统框架、Ajax模型)  DotLucenc2.0.0.2(实现全文检索)  PDFBox1.6(实现PDF文件的读取)  KindEditor 4.0.6(实现在线编辑)  strawberry 0.1.7(实现流程绘制)...

    大学生互动平台1(ssh+ext+jfreechart+部分报表功能)

    后台界面采用ajax框架ext非常漂亮。可以管理多个社团网站。采用jfreechart显示社团人数对比。社团申请会在服务器端生成pdf申请表格(带有照片)由于上传限制只能分两次传,请见谅,不过不会让你失望的。这一部分不...

Global site tag (gtag.js) - Google Analytics