当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

使用commons-fileupload与commons-io进行文件上传

发表于: 2013-04-26   作者:chinrui   来源:转载   浏览次数:
摘要: 使用commons-fileupload与commons-io进行文件上传 第一步:相关组件的下载 1、 commons-fileupload下载: http://commons.apache.org/fileupload/download_fileupload.cgi 2、 commons-io下载: http://commons.apache.org/io/download_i
使用commons-fileupload与commons-io进行文件上传

第一步:相关组件的下载
1、 commons-fileupload下载: http://commons.apache.org/fileupload/download_fileupload.cgi
2、 commons-io下载: http://commons.apache.org/io/download_io.cgi

第二步:解压到相应的位置
1、 commons-fileupload的目录:
F:\Program Files\commons-fileupload-1.2.2\lib\commons-fileupload-1.2.2.jar
2、 commons-io的目录:
F:\Program Files\commons-io-2.4\commons-io-2.4.jar
第三步:在自己的项目下引入相关的jar包
WEB-INF――lib目录下引入上面的两个包
第四步:编写文件处理的jsp程序
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
 
<%
String uploadPath = "D:\\eclipse_java_ Programs\\Shopping\\WebContent\\images\\product";
//检查输入请求是否为multipart表单数据。
boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if(isMultipart==true){
	try{
		//为该请求创建一个DiskFileItemFactory对象,通过它来解析请求。执行解析后,所有的表单项目都保存在一个List中。
		FileItemFactory factory = new DiskFileItemFactory();
		
		ServletFileUpload upload = new ServletFileUpload(factory);
		List<FileItem> items = upload.parseRequest(request);//得到所有的文件
		Iterator<FileItem> itr = items.iterator();
		int id = -1;
		while(itr.hasNext()){//依次处理每个文件
			FileItem item = (FileItem)itr.next();
			//先对非文件类型的内容进行处理
			if(item.isFormField()) {
				//getFieldName()方法获得非文件类型内容的属性名称
				if(item.getFieldName().equals("id")) {
					//getString()方法获得其相应的属性值
					id = Integer.parseInt(item.getString());
				}
			}
			
			if(!item.isFormField()) {
				String fileName = item.getName();//获得文件名,包括路径
				if(fileName != null){
					File fullFile = new File(id + ".jpg");
					File savedFile = new File(uploadPath, fullFile.getName());
					item.write(savedFile);
				}
			}
		}
		out.print("upload succeed");
	}
	catch(Exception e){
		e.printStackTrace();
	}
}
else{
	out.println("the enctype must be multipart/form-data");
}
%>

第五步:文件上传的界面
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>File upload</title>
    <style type="text/css">
	table {
	border-collapse: collapse;
	border:1px solid red;
	}
	table td {
	background:pink;
	border:1px solid red;
	padding: 3px;
	}
	</style>
</head>
<body>
    <!-- 必须是multipart的表单数据。 -->
    <form name="myform" action="uploaddeal.jsp" method="post"
       enctype="multipart/form-data">
       <input type="hidden" name="id" value="<%=id%>" />
       <table>
	       <tr>
	       		 <td>File:</td>
	       		 <td><input type="file" name="myfile"></td>
	       </tr>
	       <tr>
	       		 <td colspan="2"><input type="submit" name="submit" value="Commit"></td>
	       </tr>
       </table>
    </form>
</body>
</html>

使用commons-fileupload与commons-io进行文件上传

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一、简介 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Se
Apache提供的commons-fileupload jar包实现文件上传确实很简单,最近要用Servlet/JSP做一个图片上传
Apache提供的commons-fileupload jar包实现文件上传确实很简单,最近要用Servlet/JSP做一个图片上传
Apache提供的commons-fileupload jar包实现文件上传确实很简单,最近要用Servlet/JSP做一个图片上传
使用Servlet做文件上传,当然,底层的工作还是有开源的框架,即便如此,也着实耗费了我一些功夫。下
1. 首先需要下载需要的组件。 下载commons-fileupload-1.2.1-bin.zip,下载网址: http://commons.a
之前在阅读MongoDB GFS文档时,学习了它如何存储物理文件(包括大文件)的方式。为了加深印象,专门
在Android中上传文件可以采用HTTP方式,也可以采用Socket方式,但是HTTP方式不能上传大文件,这里介
1. 从www.apache.org的common项目下搞到commons-fileupload.jar 和commons-io.jar,导入项目。 2. j
在Android中上传文件可以采用HTTP方式,也可以采用Socket方式,但是HTTP方式不能上传大文件,这里介
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号