======先设置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",
则isMultipart为true
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`是Java开发中不可或缺的工具,它们大大简化了文件上传的实现,同时也提供了良好的错误处理和资源管理机制,使得文件上传操作变得更加可靠和高效。...
`commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 是Apache Commons项目中的两个重要库,它们提供了强大的文件上传功能,使得开发者可以轻松地处理用户通过表单提交的文件。 Apache Commons FileUpload是...
在Web应用中,用户可能需要上传图片、文档等文件,这时`commons-fileupload`就发挥了重要作用。本篇文章将深入探讨这个组件的使用方法以及可能出现的问题。 首先,我们来看`demo.jsp`和`upload.jsp`这两个文件。`...
1. Commons FileUpload:负责将HTTP请求中的多部分数据解析成一个个单独的文件或表单字段,使得开发者可以方便地处理上传的文件。 2. Commons IO:提供辅助功能,如文件读写、流操作,帮助处理FileUpload过程中涉及...
Commons FileUpload和Commons IO是Java开发中两个非常重要的库,尤其在处理文件上传功能时。这两个库由Apache软件基金会维护,是许多Java Web应用程序的标准组成部分。 `commons-fileupload-1.3.2.jar`是Apache ...
总结来说,`commons-fileupload.jar`和`commons-io.jar`在SpringMVC+Mybatis的环境中,为图片上传提供了基础功能,包括文件的解析、存储、读写等。通过它们,开发者可以构建出安全、高效、易于维护的文件上传系统。...
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库是实现这一功能的强大工具。本示例将深入解析如何结合Maven构建一个基于Servlet的文件上传演示项目。Maven是一个项目管理工具,它可以帮助...
在实际开发中,使用`Commons FileUpload`和`Commons IO`库,开发者可以方便地处理复杂的文件上传逻辑,比如限制文件类型、大小,或者进行上传后的文件处理。 这两个库在Java Web应用、尤其是Servlet和JSP开发中非常...
Apache Commons FileUpload是一个Java库,专门用于处理HTTP...通过结合使用`commons-fileupload-1.3.1.jar`和`commons-fileupload-1.3.1-sources.jar`,开发者可以轻松地在自己的项目中实现安全、高效的文件上传功能。
5. **多文件上传**:Apache Commons FileUpload支持单个文件和多个文件的上传,可以通过`<input type="file" multiple>`在HTML表单中实现。 在压缩包中,除了`commons-fileupload-1.3.3-bin`外,还包含了一个`...
以上就是关于`commons-fileupload`文件上传库的简要介绍,以及如何使用它来实现图片上传功能。这个库极大地简化了Java Web应用程序中文件上传的复杂性,使得开发者可以专注于业务逻辑,而不是底层的文件处理细节。
Commons FileUpload是Apache软件基金会的一...在实际开发中,结合`commons-fileupload`和`commons-io`这两个库,可以方便地实现在Java Web应用中的文件上传功能,并且可以自定义各种策略以满足特定的安全性和性能要求。
在Web开发中,尤其是基于Java的服务器端应用程序,文件上传是常见的需求,例如用户在表单中提交图片、文档或其他类型的数据。Apache Commons FileUpload库简化了这一过程,提供了高效且灵活的文件上传解决方案。 ...
总之,Apache Commons FileUpload是Java Web开发中处理文件上传不可或缺的工具,它提供了高效、灵活且安全的文件上传解决方案。通过理解和熟练运用这个库,开发者可以轻松地在自己的应用中实现复杂的文件上传功能。
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传和I/O操作的重要库。这两个库在处理Web应用,特别是基于JSP(JavaServer Pages)的文件上传功能时,扮演着核心角色。在这个主题中,我们将...
在处理文件上传时,`commons-fileupload`可能会依赖`commons-io`来完成一些底层的文件操作,比如读写文件、复制文件、检查文件是否存在等。`1.3.2`同样表示这个库的一个特定版本,它可能包含了更多的功能和改进。 ...
通过Apache Commons FileUpload和Commons IO库,开发者可以轻松实现JSP中的文件上传功能,同时确保了性能和安全性。这两个库的结合使用,极大地简化了文件上传的复杂性,使得开发者可以专注于业务逻辑,而不是底层的...
总的来说,`commons-fileupload-1.3.1.jar` 和 `commons-io-2.4.jar` 在Java Web开发中是处理文件上传不可或缺的工具,它们为开发者提供了强大的支持,使得文件上传功能的实现变得既高效又安全。在开发过程中,正确...
Apache Commons项目提供了两个非常重要的库,即`commons-fileupload-1.2.2.jar`和`commons-io-2.4.jar`,它们是实现这些功能的关键工具。 `commons-fileupload-1.2.2.jar`是Apache Commons FileUpload的实现,它是...
在进行Web文件上传时,开发者通常会先将`commons-fileupload`和`commons-io`这两个库添加到项目的类路径中。然后,使用FileUpload的`DiskFileItemFactory`创建一个工厂实例,配置内存和磁盘的处理策略。接着,通过`...