`
yuxingliang
  • 浏览: 10120 次
社区版块
存档分类
最新评论

java上传文件并获取form中参数

    博客分类:
  • java
 
阅读更多

 1.html页面

<form id="importWorkerForm" class="importWorkerForm" action="worker/importworker" method="post" enctype="multipart/form-data" target="importWorkerIframe" onsubmit="return importWorkerFile.submit()">
	<input type="file" id="uploadWorkerFile" name="file" style="width: 400px" /> 
	<input type="hidden" name="companyId" id="currentCompanyId" />
	 <input type="submit" value="上传" />
 </form>

 2.后台部分

 

	/**
	 * 导入文件
	 * @param request
	 * @param response
	 * @return
	 */
	public Map<String, String> importfile(HttpServletRequest request, HttpServletResponse response) {
		
		// 获取并解析文件类型和支持最大值
		String fileType = "xls";
		String maxSize = 2 + "";
		String url = request.getServletContext().getRealPath("/");
		// 上传目录名
		String tempPath = url + "upload" + File.separator + "temp" + File.separator;
		DiskFileItemFactory factory = new DiskFileItemFactory();
		// 最大缓存
		factory.setSizeThreshold(5 * 1024);
		// 设置临时文件目录
		factory.setRepository(new File(tempPath));
		ServletFileUpload upload = new ServletFileUpload(factory);
		Map<String,String> result=new HashMap<String,String>();
		if (maxSize != null && !"".equals(maxSize.trim())) {
			// 文件最大上限
			upload.setSizeMax(Integer.valueOf(maxSize) * 1024 * 1024);
		}
		try {
			// 获取所有文件列表
			List<FileItem> items = upload.parseRequest(request);
			for (FileItem item : items) {
				 // 如果是文件项,则保存文件到上传目录
				if (!item.isFormField()) {
					// 文件名
					String fileName = item.getName();
					// 检查文件后缀格式
					String fileEnd = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
					if (fileType != null && !"".equals(fileType.trim())) {
						boolean isRealType = false;
						String[] arrType = fileType.split(",");
						for (String str : arrType) {
							if (fileEnd.equals(str.toLowerCase())) {
								isRealType = true;
								break;
							}
						}
						if (!isRealType) {
							// 提示错误信息:文件格式不正确
							logger.error("loadUpWorkerFileTypeError");
							return null;
						}
					}
					// 创建文件唯一名称
					String uuid = UUID.randomUUID().toString();
					// 真实上传路径
					StringBuffer sbRealPath = new StringBuffer();
					sbRealPath.append(tempPath).append(uuid).append(".").append(fileEnd);
					// 写入文件
					File file = new File(sbRealPath.toString());
					item.write(file);
					logger.info("上传文件成功,filePath:" + file.getPath());
					//返回文件路径
					result.put("filePath", file.getPath());
					
				//获取form中参数信息
				}else{
					// item.getFieldName():获取参数key。item.getString():获取参数value
					result.put("companyId", item.getString());
				}
			}
		} catch (Exception e) {
			// 提示错误信息
			result.put("fileError", "上传失败,文件大小不能超过"+maxSize+"M!");
			logger.error("uplaodWorkerFileError");
			return result;
		}
		return result;
	}

 

分享到:
评论

相关推荐

    上传文件fileupload+解决enctype= multipart/form-data无法传递其他参数

    标题提到的“上传文件fileupload+解决enctype= multipart/form-data无法传递其他参数”是一个常见的技术挑战,特别是当使用HTML表单进行文件上传时。`multipart/form-data`是用于处理包含二进制数据(如文件)的表单...

    解决java enctype multipart form-data文件上传传值问题

    ### 解决Java enctype "multipart/form-data" 文件上传...综上所述,理解并掌握`multipart/form-data`的工作原理及其在Java Web应用中的实现细节是非常重要的。这有助于开发者更高效地解决实际项目中的文件上传问题。

    java实现文件批量上传

    在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...

    java上传文件到服务器

    在Java编程中,上传文件到...以上是关于“java上传文件到服务器”的主要知识点,涵盖了从HTTP协议到具体Java实现的各种细节。在实际开发中,可以根据项目需求选择合适的方法和技术,确保文件上传功能的稳定性和安全性。

    Java Spring文件上传,Java文件上传,Java通用文件上传

    通过这个接口,我们可以读取上传文件的内容、获取文件名、大小等信息,并将其保存到服务器。 在实际应用中,我们通常会创建一个表单来让用户选择要上传的文件。表单需要设置`enctype="multipart/form-data"`属性,...

    java实现多文件异步上传

    ### Java实现多文件异步上传知识点详解 在现代Web应用开发中,文件上传是一个非常常见的需求,尤其是在涉及图片、文档等多媒体数据的应用场景下。为了提高用户体验,异步上传技术得到了广泛的应用。本文将深入探讨...

    java文件上传代码upload

    在Java编程中,文件上传是一项常见的任务,尤其是在Web应用程序中,用户可能需要上传图片、文档等数据。这个“java文件上传代码upload”项目显然关注如何在Java环境下处理文件上传操作。下面将详细介绍Java中实现...

    java 文件上传下载

    在Java编程中,文件上传和下载是Web应用中常见的功能,尤其对于初学者来说,理解并实现这些功能是学习过程中的重要环节。本教程将详细讲解如何在Java中实现文件的上传与下载。 首先,我们要了解文件上传的基本原理...

    java实现的文件上传

    在Java编程中,文件上传是一项常见的任务,尤其在构建Web应用程序时。文件上传允许用户将本地文件传输到服务器,这在各种场景下都非常有用,比如社交媒体的图片分享、在线文档编辑或云存储服务。本教程将详细介绍...

    不用form提交表单,用ajax上传文件

    "不用form提交表单,用ajax上传文件"是这种需求的一个典型场景。这种方式可以让用户在上传文件时无需等待页面刷新,而是通过Ajax(Asynchronous JavaScript and XML)技术实现实时反馈,提升交互体验。 在JDK 8版本...

    一个Struts1多文件上传实例(附Form中传List示例)

    本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...

    multipartform-data 参数传递

    这个表单使用`POST`方法,并且使用了`multipart/form-data`作为其`enctype`属性值,这表明该表单可以用来上传文件。 #### 标签解析 - **multipart/form-data**:如上所述,这是一种特定的表单数据编码类型,用于...

    java文件上传ar包

    - 防止文件大小溢出:限制上传文件的最大大小以防止服务器被大量数据淹没。 - 文件名安全:避免使用用户提供的文件名,以防文件覆盖或注入攻击。 - 文件类型检查:验证上传的文件类型以确保安全,例如只接受某些...

    java实现文件的上传

    本篇文章将深入探讨如何使用Java实现文件上传功能,并将上传的文件保存到指定的文件夹。 首先,我们需要理解HTTP协议中的多部分/form-data编码,这是文件上传的标准格式。在Java中,我们可以使用Servlet API来处理...

    java文件上传下载

    ### Java 文件上传与下载知识点详解 #### 一、概述 在现代Web开发中,文件的上传与下载是一项基本且常用的...同时,为了提高用户体验和系统的安全性,还需要考虑诸如文件类型验证、上传文件大小限制等功能的实现。

    JAVA通过HttpURLConnection 上传和下载文件的方法

    二、JAVA通过HttpURLConnection上传文件的方法 下面是一个使用HttpURLConnection上传文件的示例代码: ```java public class HttpConnectionUtil { public static String uploadFile(String actionUrl, String[] ...

    修改好的移动端android和服务端java上传文件程序

    本项目提供的“修改好的移动端android和服务端java上传文件程序”就是一个完整的解决方案,包含了客户端Android应用和基于Servlet 3.0的服务端Java代码。下面我们将详细探讨这个程序的关键知识点。 首先,Android端...

    Flex 文件上传 java是后台服务

    Flex 文件上传技术是一种在Web应用中实现用户向服务器端上传文件的方法,通常涉及到前端的Flex技术与后端的Java服务进行交互。Flex是一款强大的富互联网应用程序(RIA)开发框架,由Adobe公司提供,用于创建动态、...

Global site tag (gtag.js) - Google Analytics