`
Veromca-源代码
  • 浏览: 41630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP使用commons-fileupload实现文件上传实例

阅读更多
之前用smartupload上传文件,发现处理较大文件时会内存溢出,在网上了解到可修改系统设置来解决此问题:
(1). 在windows 更改系统环境变量
加上JAVA_OPTS=-Xms64m -Xmx512m
(2). 修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m"
但还是不太好使,后来改成了commons-fileupload
供大家参考,共同学习!

以下是commons-fileupload实现JSP上传文件的主要代码:
<%@ page language="java"  pageEncoding="GBK"%>

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.util.List" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.io.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%@ page import="org.apache.commons.fileupload.FileUploadException" %>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>上传文件操作</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%		

try{

	String fileType = request.getParameter("fileType"); //获取页面提交的文件	指定文件夹
	String fileName = request.getParameter("fileName"); //文件名
	fileName=new String(fileName.getBytes("ISO-8859-1"),"GBK");	  
	String  fileNameStr = new String(fileName.getBytes("GBK"), "ISO-8859-1");  
	//System.out.println("fileName"+fileName);
	//System.out.println("fileNameStr"+fileNameStr);
          
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);//检查表单中是否包含文件
	if(isMultipart){
  		FileItemFactory factory = new DiskFileItemFactory();
   		//factory.setSizeThreshold(yourMaxMemorySize); 此处可设置使用的内存最大值
   		//factory.setRepository(yourTempDirectory); 文件临时目录

   		ServletFileUpload upload = new ServletFileUpload(factory);
		long maxsize = 80*1024*1024;
   		upload.setSizeMax(maxsize);//允许的最大文件尺寸		
		java.util.List itemss = new ArrayList();
   		itemss = upload.parseRequest(request);
		String u_name = "E:/founder_erp_upload/"+ fileType + "/" + fileName;//保存到文件目录
		//System.out.println("===================1======================="+itemss.size());
   		for(int i=0;i<itemss.size();i++){
   			FileItem fi = (FileItem)itemss.get(i);
			//fi.write(new File(u_name));
			
   			if(fi.isFormField()){//如果是表单字段
				//System.out.println("==================2=======================");
   			}else{//如果是文件
   				DiskFileItem dfi = (DiskFileItem)fi;
   				//if(!dfi.getName().trim().equals("")){
					//getName()返回文件名称,如果是空字符串,说明没有选择文件。	
   					dfi.write(new File(u_name));
					//System.out.println("==================3=======================");
   				//}
   			}
   		}
	}             

         // 另存到操作系统的根目录为文件根目录的目录下
         //file.saveAs("E://upload//"+ fileType + "//" + fileName +"." + file.getFileExt() ,su.SAVE_PHYSICAL);	
	}catch(Exception e){
		e.printStackTrace();		
	}finally {
	}	
%>        
<script type="text/javascript">
 	window.alert("上传成功!");
 	window.close();
 </script>
  </body>
</html>

1
1
分享到:
评论

相关推荐

    使用commons-fileupload上传文件

    通过使用`commons-fileupload`,开发者可以方便地在Java Web应用中实现文件上传功能,而无需关注底层的HTTP协议细节。这个组件提供了丰富的API,支持各种自定义选项,例如内存阈值、临时文件存储位置等,使得文件...

    commons-fileupload-1.3.jar和commons-io-1.2.jar.zip

    结合这两个库,开发者可以轻松实现文件上传功能,包括验证文件类型、大小,处理多个文件上传,以及将上传的文件安全地保存到服务器的指定位置。在实际应用中,为了保证安全性,还需要注意防止恶意文件上传和DDoS攻击...

    commons-fileupload-1.0上传组件使用实例.

    接下来我们将根据提供的代码示例来详细了解如何使用`commons-fileupload`实现文件上传功能。 1. **前端表单设计**: - 创建一个HTML表单,用于收集用户上传的文件。 - 表单的`method`属性设置为`POST`,`enctype`...

    commons-fileupload实现jsp上传实例(源码).rar

    【描述】:此源码实例主要展示了如何将Apache Commons FileUpload与JSP结合,实现在网页上进行文件上传的功能。文档中不仅包含了源代码,还提供了一步步的教程,旨在帮助开发者快速理解和实施文件上传逻辑。 【标签...

    commons-fileupload.rar;包括commons-fileupload-1.3.1-bin和commons-io-2.4

    6. **安全性考虑**:在使用`commons-fileupload`进行文件上传时,需要考虑安全性问题,比如防止恶意文件上传、限制文件大小和类型、以及对上传文件的路径安全控制,防止路径遍历攻击。 7. **与其他库的集成**:`...

    commons-fileupload-1.3.3-bin

    5. **多文件上传**:Apache Commons FileUpload支持单个文件和多个文件的上传,可以通过`&lt;input type="file" multiple&gt;`在HTML表单中实现。 在压缩包中,除了`commons-fileupload-1.3.3-bin`外,还包含了一个`...

    JSP组件commons-fileupload实现文件上传

    本文实例为大家分享了JSP使用commons-fileupload实现文件上传代码,供大家参考,具体内容如下 1、准备: 将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到”\WEB-INF\lib”目录下 2、首先是Servlet:...

    commons-fileupload实现jsp上传实例(源码)

    "commons-fileupload实现jsp上传实例(源码)" 这个标题表明了我们讨论的主题是关于使用Apache Commons FileUpload库在JavaServer Pages (JSP)中实现文件上传的功能,并且提供了源代码作为参考。Apache Commons ...

    java 上传 SmartUpload&commons-fileupload

    使用Commons-Fileupload,你需要配置Servlet容器来解析多部分请求,并创建`DiskFileItemFactory`来处理临时文件存储,接着创建`FileUpload`实例进行文件解析。 在选择使用哪个组件时,应考虑项目需求和团队的熟悉...

    commons-fileupload-1.2.1.jar和commons-io-1.4.jar

    这两个库常常一起使用,因为`commons-fileupload`在处理文件上传时,可能会依赖`commons-io`来执行一些底层的I/O操作。孤傲苍狼在他们的Demo中使用了这两个库,使得开发者能够方便地实现用户在Web应用中上传文件的...

    jsp多附件上传commons-fileupload-1.1.jar

    本教程将详细讲解如何利用Apache Commons FileUpload库实现在JSP中实现多文件上传功能。Apache Commons FileUpload是一个强大的、灵活的工具,它允许开发者在Servlet环境中处理文件上传请求。 首先,我们需要在项目...

    基于commons-fileupload组件的上传下载

    以下将详细介绍如何使用commons-fileupload组件实现文件上传和下载。 首先,你需要在项目中引入必要的依赖库。如【描述】中所述,需要导入`javacommons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`两个文件,这两...

    commons-fileupload

    "commons-fileupload"是Apache Commons项目中的一个子项目,专门用于处理JSP和Servlet应用程序中的文件上传功能。在Web开发中,尤其是用户需要上传图片、文档等文件时,这个组件显得尤为重要。它提供了简单易用的API...

    java上传下载需要的jar:commons-fileupload-1.2.jar+commons-io-1.3.2.jar

    库的核心类包括`FileItem`,用于表示上传的单一文件或表单字段,以及`FileUpload`,用于解析请求并创建`FileItem`实例。此外,它还支持设置内存阈值和临时文件存储路径,以优化大文件上传的处理。 `commons-io-...

    commons-fileUpload组件

    描述中提到"jsp上传组件包含commons-fileupload.jar和commons-io.jar",这意味着在JSP(JavaServer Pages)环境中,为了实现文件上传功能,开发者通常会引用这两个JAR文件。Apache Commons FileUpload处理文件上传的...

    Commons-FileUpLoad(JAR包).zip

    总的来说,Apache Commons FileUpload库是Java Web开发中不可或缺的工具,它极大地简化了文件上传功能的实现,让开发者可以更专注于业务逻辑的开发,而不是底层的细节处理。通过熟练掌握这个库,开发者能够创建更...

    利用commons-fileupload上传组件上传文件(一)

    在本文中,我们将深入探讨如何使用Apache Commons FileUpload组件来实现文件上传功能。Apache Commons FileUpload是一个用于处理HTTP请求中的多部分数据的Java库,它使得在Servlet或JSP应用中处理文件上传变得简单易...

    SmartUpload.jar和commons-fileupload-1.1.1.jar

    在这个场景中,"SmartUpload.jar" 和 "commons-fileupload-1.1.1.jar" 是两个关键的Java库,它们极大地简化了在JSP(JavaServer Pages)中实现文件上传的过程。 首先,我们来详细了解这两个库: 1. **SmartUpload....

Global site tag (gtag.js) - Google Analytics