`

表单添加图片,commons-fileupload实现上传

 
阅读更多


======先设置form 表单的属性:

<form name ="dataFrm" id="dataFrm" action="doAdd.jsp" method="post" enctype="multipart/form-data">

======= 用了 commons-fileupload-1.2.2-bin 组件

======= 用了 commons-io-2.4-bin 组件

核心类   ServletFileUpload

========

第三方组件
   第三方组织提供的组件
   http://commons.apache.org
commons-fileupload
   apache公司提供的组件,实现上传功能
为新闻添加图片的步骤:
   下载commons-fileupload-1.2.2.jar和commons-io-
2.4.jar导入项目
   准备添加新闻的页面,提交至JSP
   在JSP中实现文件上传和新闻添加

小结

准备新闻的提交页面
   在表单中指定属性enctype="multipart/form-data"
   修改表单的提交方式为post
在JSP中实现文件上传
   检查请求类型
   声明对象
   转换请求对象
boolean isMultipart=ServletFileUpload.isMultipartContent(request);
if(isMultipart)//enctype="multipart/form-data",并且method="post",
isMultiparttrue
FileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);
List<FileItem> items=null;
items=upload.parseRequest(request);

在JSP中实现文件上传
   检查请求类型
   声明对象
   转换请求对象
   保存上传的文件
   获取普通字段
if(!item.isFormField()){
File fullFile=new File(item.getName());
File uploadFile=new File(realPath,fullFile.getName());
item.write(uploadFile);
}
if (item.isFormField()){
fieldName = item.getFieldName();
if (fieldName.equals("title")){
news.setTitle(item.getString("UTF-8"));
}…
}

==========================================

使用<img>标签实现图片
的展现


 

<%
	//接收增加的新闻信息,并调用后台方法,将新闻信息插入数据库
	//设置请求的字符编码UTF-8
	request.setCharacterEncoding("utf-8");
	//创建News对象
	News news = new News();
	Date createDate = new Date();
	news.setCreateDate(createDate);
	//
	boolean bRet = false;
	boolean bUpload = false;
	//
	//解析请求之前先判断请求类型是否为文件上传类型
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
	//指定文件上传路径(项目部署在服务器上的真实路径的/upload/)
	String uploadPath = request.getSession().getServletContext().getRealPath("upload/");
	//如果uploadPath目录不存在,就创建目录  
	File savedDir = new File(uploadPath);
	if(!savedDir.exists()){//创建文件夹
		savedDir.mkdir();//mkdir只能在已经存在的目录中创建创建文件夹;createNewFile可以创建文件如:a.txt
	}
	if(isMultipart){//处理文件上传
		//创建文件上传的核心类ServletFileUpload
		//实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
		FileItemFactory factory = new DiskFileItemFactory();
		// 用以上工厂实例化上传组件
		ServletFileUpload upload = new ServletFileUpload(factory);
		//解析请求
		List<FileItem> items = upload.parseRequest(request);
		//得到迭代器
		Iterator<FileItem> iter = items.iterator();
		while(iter.hasNext()){
			FileItem item = iter.next();
			//判断fileitem是文本域还是文件域
			if(item.isFormField()){//若是普通的文本表单控件
				if(item.getFieldName().equals("categoryId")){
					news.setCategoryId(Integer.parseInt(item.getString()));//获取文本域的value的值
				}else if(item.getFieldName().equals("title")){
					news.setTitle(item.getString("UTF-8"));//获取文本域的value的值
				}else if(item.getFieldName().equals("summary")){
					news.setSummary(item.getString("UTF-8"));//获取文本域的value的值
				}else if(item.getFieldName().equals("newscontent")){
					news.setContent(item.getString("UTF-8"));//获取文本域的value的值
				}else if(item.getFieldName().equals("author")){
					news.setAuthor(item.getString("UTF-8"));//获取文本域的value的值
				}
			}else{//若是文件表单控件
					String fileName = item.getName();// 获得文件名(全路径)
					//判断文件表单名是否为空
					if(fileName!=null&&!fileName.equals("")){
						//把得到的全路径名通过 fullFile转化一下,获得文件的名 
						File fullFile = new File(fileName);
						//将文件保存到指定的路径下
						//文件名:fullFile.getName()---保存路径:uploadPath
						File saveFile = new File(uploadPath,fullFile.getName());
						//写入到saveFilewe文件----上传操作
						item.write(saveFile);
						news.setPicPath(fullFile.getName());
						bUpload=true;
					}
			}
		}
		if(bUpload){
			System.out.println("上传成功之后的文件名:" + news.getPicPath());
			//调用后台的方法,将新闻信息插入数据库中
		}
		
		bRet = newsService.addNews(news);
		if(bRet){//成功
			//重定向
			response.sendRedirect("newsDetailList.jsp");
		}else{//失败
			//转发
			//request.getRequestDispatcher("newsDetailCreateSimple.jsp").forward(request,response);
		%>
			<jsp:forward page="newsDetailCreateSimple.jsp"></jsp:forward>
		<%}
	}
%>
 
 

 

分享到:
评论

相关推荐

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    总的来说,`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Java开发中不可或缺的工具,它们大大简化了文件上传的实现,同时也提供了良好的错误处理和资源管理机制,使得文件上传操作变得更加可靠和高效。...

    commons-fileupload组件上传问题

    在Web应用中,用户可能需要上传图片、文档等文件,这时`commons-fileupload`就发挥了重要作用。本篇文章将深入探讨这个组件的使用方法以及可能出现的问题。 首先,我们来看`demo.jsp`和`upload.jsp`这两个文件。`...

    commons-fileupload-1.3.3.jar commons-io-2.5.jar

    `commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 是Apache Commons项目中的两个重要库,它们提供了强大的文件上传功能,使得开发者可以轻松地处理用户通过表单提交的文件。 Apache Commons FileUpload是...

    maven实现的commons-fileupload的demo

    在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库是实现这一功能的强大工具。本示例将深入解析如何结合Maven构建一个基于Servlet的文件上传演示项目。Maven是一个项目管理工具,它可以帮助...

    commons-fileupload-1.3.2.jar和commons-io-2.5.jar

    Commons FileUpload和Commons IO是Java开发中两个非常重要的库,尤其在处理文件上传功能时。这两个库由Apache软件基金会维护,是许多Java Web应用程序的标准组成部分。 `commons-fileupload-1.3.2.jar`是Apache ...

    commons-fileupload及源码

    Apache Commons FileUpload是一个Java库,专门用于处理HTTP...通过结合使用`commons-fileupload-1.3.1.jar`和`commons-fileupload-1.3.1-sources.jar`,开发者可以轻松地在自己的项目中实现安全、高效的文件上传功能。

    commons-fileupload 文件上传 图片上传 demo

    以上就是关于`commons-fileupload`文件上传库的简要介绍,以及如何使用它来实现图片上传功能。这个库极大地简化了Java Web应用程序中文件上传的复杂性,使得开发者可以专注于业务逻辑,而不是底层的文件处理细节。

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

    Commons FileUpload是Apache软件基金会的一...在实际开发中,结合`commons-fileupload`和`commons-io`这两个库,可以方便地实现在Java Web应用中的文件上传功能,并且可以自定义各种策略以满足特定的安全性和性能要求。

    commons-fileupload-1.3.1.jar

    在Web开发中,尤其是基于Java的服务器端应用程序,文件上传是常见的需求,例如用户在表单中提交图片、文档或其他类型的数据。Apache Commons FileUpload库简化了这一过程,提供了高效且灵活的文件上传解决方案。 ...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    1. Commons FileUpload:负责将HTTP请求中的多部分数据解析成一个个单独的文件或表单字段,使得开发者可以方便地处理上传的文件。 2. Commons IO:提供辅助功能,如文件读写、流操作,帮助处理FileUpload过程中涉及...

    commons-fileupload-1.3.2.jar

    总之,Apache Commons FileUpload是Java Web开发中处理文件上传不可或缺的工具,它提供了高效、灵活且安全的文件上传解决方案。通过理解和熟练运用这个库,开发者可以轻松地在自己的应用中实现复杂的文件上传功能。

    commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar

    在处理文件上传时,`commons-fileupload`可能会依赖`commons-io`来完成一些底层的文件操作,比如读写文件、复制文件、检查文件是否存在等。`1.3.2`同样表示这个库的一个特定版本,它可能包含了更多的功能和改进。 ...

    commons-fileupload-1.3.2jar包和commons-io-2.5jar包.zip

    Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传和I/O操作的重要库。这两个库在处理Web应用,特别是基于JSP(JavaServer Pages)的文件上传功能时,扮演着核心角色。在这个主题中,我们将...

    commons-fileupload-1.3.2jar和commons-io-2.5.jar包

    通过Apache Commons FileUpload和Commons IO库,开发者可以轻松实现JSP中的文件上传功能,同时确保了性能和安全性。这两个库的结合使用,极大地简化了文件上传的复杂性,使得开发者可以专注于业务逻辑,而不是底层的...

    commons-fileupload-1.3.3-bin

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

    文件上传两个jar包commons-fileupload-1.3.1和commons-io-2.4

    总的来说,`commons-fileupload-1.3.1.jar` 和 `commons-io-2.4.jar` 在Java Web开发中是处理文件上传不可或缺的工具,它们为开发者提供了强大的支持,使得文件上传功能的实现变得既高效又安全。在开发过程中,正确...

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

    在进行Web文件上传时,开发者通常会先将`commons-fileupload`和`commons-io`这两个库添加到项目的类路径中。然后,使用FileUpload的`DiskFileItemFactory`创建一个工厂实例,配置内存和磁盘的处理策略。接着,通过`...

    commons-fileupload-1.3.3-bin.tar.gz

    这个库使得开发者能够轻松地在Web应用中添加上传文件的功能。标题中的"commons-fileupload-1.3.3-bin.tar.gz"是一个压缩包文件,包含了Apache Commons FileUpload 1.3.3版本的二进制(bin)文件,通常包括JAR库和...

    struts1.2和commons-fileupload实现文件上传

    Struts1.2和Commons-Fileupload是Java Web开发中用于实现文件上传的两个重要组件。Struts1.2是Apache的一个开源框架,主要用于构建MVC(模型-视图-控制器)架构的Web应用程序,而Commons-Fileupload则是Apache ...

    commons-fileupload组件和commons-io组件

    在实际使用中,Commons-Fileupload通常与Commons-IO结合,实现完整的文件上传流程。例如,当文件上传完成后,我们可以使用Commons-IO的工具类将文件移动到目标位置,或者进行进一步的处理。这两个组件极大地简化了...

Global site tag (gtag.js) - Google Analytics