`

ajax upload file

阅读更多

 AJAX Uplad File 是个简单而美观的上传文件插件。

 

附件是从官方网站下的例子!

 

详细使用步骤如下:

 

1. 下载ajaxupload.js文件。 官方:http://valums.com/ajax-upload/

2. 在JSP中添加JS和CSS代码(如果你想自己定义样式)

 

	<script type="text/javascript" src="<%=request.getContextPath() %>/js/ajaxupload.js"></script>
	     <style type="text/css">
		.wrapper { width: 133px; margin: 0 auto; }
		div.button {
			height: 20px;	
			width: 83px;
			background: url(../../../images/button.png) 0 0;
			font-size: 12px; color: #C7D92C; text-align: center; padding-top: 0px;
		}
		div.button.hover {
			background: url(../../../images/button.png) 0 56px;
			color: #95A226;	
		}
			
	</style>

 

<table width="80%">
	<tr>
		<td>inovice:</td><td><div id="inovice" class="button">Upload</div></td>
	</tr>
	<tr>
		<td>COA:</td><td><div id="coa" class="button">Upload</div></td>
	</tr>
</table>
$(document).ready(function () {
	/* coa  : itemFile为action中处理上传时定义的file name   onSubmit: 点击上传的处理。 oncomplete: 上传完成后的信息处理*/
	var coa = $("#coa"), interval;
	new AjaxUpload(coa, {action:path + "/admin/book/item/upload/coa/" + $("#id").val(), name:"itemFile", onSubmit:function (file, ext) {
		coa.text("Uploading");
		this.disable();
		interval = window.setInterval(function () {
			var text = coa.text();
			if (text.length < 13) {
				coa.text(text + ".");
			} else {
				coa.text("Uploading");
			}
		}, 200);
	}, onComplete:function (file, response) {
		coa.text("Upload");
		window.clearInterval(interval);
		this.enable();
		if (response.search("success") == -1) {
			$("#coaText").text(file+" -->Error!");
		} else {
		   $("#coaText").text(file+" -->Success!");
		}
	}});

	/* inovice */
	var inovice = $("#inovice"), interval;
	new AjaxUpload(inovice, {action:path + "/admin/book/item/upload/inovice/" + $("#id").val(), name:"itemFile", onSubmit:function (file, ext) {
		inovice.text("Uploading");
		this.disable();
		interval = window.setInterval(function () {
			var text = inovice.text();
			if (text.length < 13) {
				inovice.text(text + ".");
			} else {
				inovice.text("Uploading");
			}
		}, 200);
	}, onComplete:function (file, response) {
		inovice.text("Upload");
		window.clearInterval(interval);
		this.enable();
		if (response.search("success") == -1) {
			$("#inoviceText").text(file+" -->Error!");
		} else {
		    $("#inoviceText").text(file+" -->Success!");
		}
	}});
});

 

2. 上传处理,我是用spring 自带的文件上传处理。

   *使用spring upload的上传功能首先需要在appliaction-context.xml中加入以下

	<!-- upload file -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!--property name="maxUploadSize">
			<value>10485760</value>
		</property>-->
		<property name="maxInMemorySize">
			<value>20480</value>
		</property>
		<property name="defaultEncoding">
			<value>UTF-8</value>
		</property>
	</bean>

 

action中代码处理

     

@RequestMapping("/item/upload/{type}/{id}")
	public void uploadFile(@PathVariable("type") String type, @PathVariable("id") Integer id, HttpServletRequest request,	HttpServletResponse response) {
		
		/* parse upload file */
		MultipartHttpServletRequest mhs = (MultipartHttpServletRequest) request;
		MultipartFile mf = mhs.getFile("itemFile");

		String storePath = globalSettingService.getGlobalSetting().getUploadFilePath();
		/* create stroeFolder */
		File storeFileFolder = new File(storePath);
		if (!checkStoreFolder(storeFileFolder, response)) {
			MessageUtils.outputJSONResult("noStorePath", response);
			return;
		}
		
		/* upload file */
		String uploadFilePath = FilePathHelper.uploadFileToStorePath(mf, storeFileFolder);
		if ("error".equals(uploadFilePath)) {
			MessageUtils.outputJSONResult("error", response);
			return;
		}
		
		BookItem o = buildBookItem(type, uploadFilePath, id);
		bookService.saveBookItem(o);
		MessageUtils.outputJSONResult("success", response);
	}



/**
	 * upload file to disk path
	 * @param mf MultipartFile 
	 * @return upload file absolute path
	 * @throws Exception 
	 * @throws Exception if occur error throw Exception
	 */
	public static String uploadFileToStorePath(MultipartFile mf, File storeFile) {
		if (null == storeFile || !storeFile.isDirectory()) {return "error";}
		
		CommonsMultipartFile cmf = (CommonsMultipartFile)mf;
		DiskFileItem fileItem = (DiskFileItem) cmf.getFileItem();
		String fileType = StringUtils.substringAfterLast(fileItem.getName(), ".");
		String fileName = generateFileName(fileType);
		File storeNewFile = new File(storeFile.getAbsolutePath()+File.separator+fileName);
		try {
			fileItem.write(storeNewFile);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		fileItem.delete();
		return fileName;
		//return storeNewFile.getAbsolutePath();
	}

 

分享到:
评论
3 楼 HFLdragon 2013-06-17  
下来学习一下
2 楼 zhangjq5 2012-06-20  
中文名乱码……
1 楼 yw2325 2011-08-16  
ie都不支持

相关推荐

    ASP.NET MVC AJAX upload file

    ASP.NET MVC AJAX 文件上传示例代码。 使用 jquery.fileupload + bootstrap 实现,支持多个文件上传。 运行环境:Visual Studio 2012 project, ASP.NET MVC4

    ajaxupload.js

    **AjaxUpload技术详解** AjaxUpload是一种在Web应用中实现异步文件上传的技术,它基于JavaScript的Ajax(Asynchronous JavaScript and XML)技术,允许用户在不刷新整个页面的情况下上传文件,提高了用户体验。`...

    jquery Ajaxupload应用

    **jQuery AjaxUpload应用详解** AjaxUpload是一款非常实用的JavaScript插件,它允许用户在无需刷新页面的情况下上传文件,极大地提升了用户体验。在这个详细的知识点解析中,我们将深入理解AjaxUpload的工作原理,...

    ajaxUpload.

    标题"ajaxUpload."和描述"ajaxUpload.ajaxUpload.ajaxUpload."暗示我们将深入探讨这个话题。 ### 一、Ajax Upload原理 Ajax Upload的核心是利用JavaScript的异步特性,通过XMLHttpRequest对象与服务器进行通信。它...

    jquery ajax file upload

    在Web开发中,jQuery AJAX File Upload 是一个常见且实用的技术,它允许用户在不刷新整个页面的情况下上传文件。这一技术极大地提升了用户体验,因为用户可以一边浏览网页,一边进行文件上传,提高了交互性和效率。...

    jquery 插件ajaxupload 的简单应用

    **jQuery插件AjaxUpload简介** AjaxUpload是一款基于jQuery的插件,它允许用户在无需刷新页面的情况下上传文件。这个插件极大地提升了用户体验,因为它能够实现在后台处理文件上传,同时还可以自定义各种反馈机制,...

    Jquery AjaxUpload实现文件上传实例 PHP版

    AjaxUpload是jQuery的一个插件,它提供了一种方便的异步文件上传方式,无需刷新页面即可完成文件上传,提高了用户体验。在这个“Jquery AjaxUpload实现文件上传实例 PHP版”中,我们将探讨如何使用jQuery的Ajax...

    Ajaxupload

    当用户选择文件后,而不是立即提交整个表单,AjaxUpload会触发一个后台上传过程,这个过程通常伴随着进度指示和错误处理机制。在服务器端,接收并处理文件后,会将结果通过JSON、XML或其他格式响应给客户端,然后...

    ajaxUpload示例

    **AjaxUpload 示例详解** 在Web开发中,Ajax(Asynchronous JavaScript and XML)技术是一种实现页面无刷新更新数据的方法,极大地提升了用户体验。AjaxUpload是基于Ajax技术的一种文件上传方式,它允许用户在不...

    AjaxUpload.rar 文件上传

    AjaxUpload是一种基于JavaScript和Ajax技术实现的异步文件上传方式,它允许用户在不刷新...不过,随着技术的发展,HTML5的File API和Fetch API等新特性也在逐步替代传统的AjaxUpload方法,为文件上传提供了更多可能性。

    jQuery ajax file upload

    总结来说,`jQuery ajax file upload`是通过`ajaxFileUpload`插件实现的一种无刷新的文件上传方式,它提高了用户体验,并且提供了丰富的自定义选项和回调机制,适用于各种Web应用的文件上传需求。要正确使用,需要...

    ajaxupload.js上传图片

    **AjaxUpload.js 图片上传详解** AjaxUpload.js 是一个JavaScript库,它允许用户在不刷新整个页面的情况下,通过Ajax技术实现文件(特别是图片)的上传。这种上传方式提供了更好的用户体验,因为用户可以在上传过程...

    ajaxupload 单个按钮实现图片上传 步用file

    本教程将详细讲解如何使用AjaxUpload控件,结合C#后端处理和jQuery前端库,实现一个单个按钮即可完成图片上传的功能,且无需使用传统的`&lt;input type="file"&gt;`文件选择框。 首先,我们需要理解AjaxUpload的工作原理...

    ajaxupload

    【AjaxUpload技术详解】 AjaxUpload是一种在Web应用中实现异步文件上传的技术,它结合了Ajax(Asynchronous JavaScript and XML)的优势,使得用户无需刷新整个页面就能完成文件上传操作,提高了用户体验。本技术...

    Ajax Upload文件上传插件 替代(<input type=”file” />)上传图片

    在压缩包的文件名称列表中,我们可以看到`ajax-file-upload.php.htm`可能是包含HTML和PHP代码的综合文件,`ajax-upload-php.zip`是插件的完整源码包,而`ajax-file-upload.php_files`可能是一个目录,包含了与`ajax-...

    ajax php file upload

    在提供的"ajaxupload"压缩包中,可能包含了一个实现以上流程的示例代码。学习这个组件可以帮助你理解如何结合使用AJAX和PHP来实现文件上传功能,从而提升你的Web开发技能。请注意,实际应用时,你需要根据项目需求和...

    ajax提交file文件

    在前端开发中,"ajax提交file文件"是一个常见的需求,特别是在现代Web应用中,用户可能需要上传图片、文档等文件而无需刷新整个页面。Ajax(Asynchronous JavaScript and XML)技术使得这种异步通信成为可能,它允许...

    Base64和AjaxUpload上传文件代码实例

    Base64和AjaxUpload上传文件代码实例 Base64和AjaxUpload上传文件代码实例是两种常用的文件上传方式,它们都可以实现文件上传到服务器端,但它们之间有着明显的区别。 Base64上传文件是一种基于文本编码的上传方式...

    jquery upload ajax方式

    **jQuery Upload AJAX方式详解** 在Web开发中,文件上传是一个常见的功能,传统的文件上传通常需要刷新整个页面,用户体验较差。随着Ajax技术的发展,无刷新上传文件成为可能,jQuery结合Ajax提供了一种优雅的解决...

Global site tag (gtag.js) - Google Analytics