刚刚上手的项目 被文件上传困扰了好久,之前用fileupload组件上传,代码参考孤傲苍狼博客,可是除了文件名,表单内的其他内容不知道该怎么读出来进行存储;所以此次采用smartupload组件进行上传
add.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'add.jsp' starting page</title> </head> <body> <form action="backpages/memberIntroduce/addDo.jsp" method="post" enctype="multipart/form-data"> 姓名:<input type="text" name="name"><br> 简介:<input type="text" name="content"><br> 照片:<input type="file" name="photo"><br> <input type="submit" value="提交"> </form> </body> </html>
enctype必须是"multipart/form-data";
addDo.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="com.HQWeb.entity.*"%> <%@ page import="com.HQWeb.dao.*"%> <%@page import="com.jspsmart.upload.SmartUpload"%> <%@page import="com.jspsmart.upload.File"%> <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); //创建smartupload组件 SmartUpload su = new SmartUpload(); //初始化组件上下文 su.initialize(pageContext); //上传文件 su.upload(); out.println("上传" + su.save("picture/memberPhoto") + "个文件成功!!!"+"<br>"); //得到表单项 //String name = su.getRequest().getParameter("name"); //String content = su.getRequest().getParameter("content"); String name = new String(su.getRequest() .getParameter("name").trim().getBytes(), "utf-8"); String content = new String(su.getRequest() .getParameter("content").trim().getBytes(), "utf-8"); //获取单个文件 File file = su.getFiles().getFile(0);//可用一个for循环获取多个文件 //判断当前file是否选择了文件;如果没有则继续 if (file.isMissing()) System.out.println("未选择文件");//如果用for循环 则continue //设置上传服务器的位置 String path = "/picture/memberPhoto"; //得到上传文件的名称 String photo = file.getFileName(); //上传文件的路径 path = path + photo; //保存文件 file.saveAs(path, SmartUpload.SAVE_VIRTUAL); System.out.println(photo); Member member = new Member(); member.setName(name); member.setContent(content); member.setPhoto(photo); if (MemberDao.insert(member)) { out.println("操作成功,3秒后返回列表"); response.setHeader("refresh", "3;list.jsp"); } else { out.println("操作失败,3秒钟后返回列表"); response.setHeader("refresh", "3;list.jsp"); } %>
在addDo.jsp页面里面,因为smartupload将全部内容封装,所以request.getParameter并不能获取到字段,需要使用封装好的su.getRequest().getParameter("name");
但又一个问题,上传中文表单时存储到数据库中会显示乱码,使用su.getRequest().getParameter("name").trim().getBytes(), "utf-8");能解决一部分,乱码问题尚待解决
重新自己总结上传文件流程:
1、实例化SmartUpload对象;
<!--[if !supportLists]-->2、 2、<!--[endif]-->初始化组建上下文(initialize(pageContext)方法);
<!--[if !supportLists]-->3、 3、<!--[endif]-->文件上传(upload()方法);
<!--[if !supportLists]-->4、 4、<!--[endif]-->获取表单项;
<!--[if !supportLists]-->5、 5、<!--[endif]-->获取文件(getFiles()返回Files类型,再使用其getFile(index)方法获取单个文件);
<!--[if !supportLists]-->6、 6、<!--[endif]-->设置服务器位置
<!--[if !supportLists]-->7、 7、<!--[endif]-->获取文件名
<!--[if !supportLists]-->8、 8、<!--[endif]-->设置路径;即path+filename path和文件名中间必须有"/"否则会将文件上传至pth路径下,并将文件名称改为该目录文件夹名+文件名
<!--[if !supportLists]-->9、 9、<!--[endif]-->使用file.saveAs(path, SmartUpload.SAVE_VIRTUAL);方法将文件保存至指定目录下
相关推荐
本篇文章将深入探讨如何在Windows环境下使用SmartUpload组件在JSP中实现文件上传功能。 首先,我们需要了解SmartUpload组件的基本概念。SmartUpload是基于Java的开源项目,由Marc Eppel开发。它提供了一套API,允许...
通过使用jspSmartUpload组件,开发者能够在JSP环境中轻松实现文件的上传与下载功能,无需过多的编码工作,大大提高了开发效率。此外,其丰富的功能和良好的兼容性,使得它成为处理复杂文件管理任务的理想选择。无论...
在提供的`JspSmartUpload.chm`文件中,通常包含了组件的详细文档,包括API参考、示例代码和常见问题解答等,这对于理解和使用JSP Smart Upload非常有帮助。通过查阅这个帮助文件,开发者可以更深入地了解如何利用该...
首先,`jspSmartUpload`是一个基于Java Servlet的文件上传组件,它提供了一套完整的API来处理文件上传的过程。这个组件支持多文件上传,可以设定上传文件的大小限制,还能处理各种类型的文件格式。通过使用`jsp...
NULL 博文链接:https://systemxgl.iteye.com/blog/267472
下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:http://download.csdn.net/detail/huahuahailang/4265620 照着使用,即可下载中文。
"SmartUpload组件"就是这样一个专门针对文件上传任务而设计的工具,尤其在基于Java的JSP(JavaServer Pages)开发中应用广泛。本文将详细介绍SmartUpload组件及其使用示例,帮助开发者更好地理解和运用这个强大的...
通过SmartUpload组件,开发者可以轻松地集成文件上传和下载功能,极大地提高了开发效率,同时也提升了用户的使用体验。在实际项目中,根据需求进行适当定制,可以构建出稳定且高效的文件管理系统。
这是一个利用smartUpload组件实现文件上传的例子,已经测试通过!! 附带该组件只要放到服务器的lib下边重启服务器就能实现
`jspSmartUpload`组件是Java Web开发中用于实现文件上传和下载功能的一款强大工具,尤其在基于JSP的B/S(Browser/Server)架构应用程序中,它以其便捷性和高效性受到开发者们的青睐。本篇文章将深入探讨`jsp...
SmartUpload组件是一款强大的Java上传组件,它为Web应用提供了便捷的文件上传功能。在Web开发中,文件上传是一项常见的需求,比如用户提交表单时可能需要上传头像、附件等。SmartUpload通过封装HTTP请求,使得处理...
**JSpsmartupload组件**是一个基于Java的上传文件解决方案,主要应用于JSP(Java Server Pages)环境中。这个组件提供了一种简单且强大的方式来处理用户通过网页上传的文件。在标题和描述中提到的,该组件的核心是用...
3. **初始化smartupload对象**:在处理上传请求的Servlet或JSP页面中,使用`SmartUpload.initialize(pageContext)`来初始化Smartupload组件,准备接收上传的文件。 4. **执行上传**:调用`SmartUpload.upload()`...
SmartUpload组件是一个强大的文件上传工具,常用于Web应用程序中,为用户提供方便、高效的文件上传功能。这个组件以其灵活的配置和丰富的API,使得开发者能够轻松地集成到自己的项目中,处理各种复杂的上传需求。 ...
真正解决jspSmartUpload组件上传下载文件时中文乱码问题。以前在网上也找过!!!下载了些,都没能解决中文乱码问题!自己改了源代码,并做成jar包,直接用就可以。 另,我把File()类 改成了 SmartFile()类。详情请...
下面我们将深入探讨如何使用SmartUpload组件来实现文件上传。 首先,要使用SmartUpload,你需要在项目中引入其对应的JAR包。这个组件包含了一系列类和方法,允许开发者轻松地处理文件上传的整个流程,包括接收文件...
在Java Web应用开发中,使用jspSmartUpload组件可以方便地实现文件上传和下载的功能。这个组件是一个强大的工具,尤其在处理多文件上传和下载时,能够简化开发过程。在这个55号课堂案例中,我们将专注于如何利用jsp...
### jspSmartUpload组件上传下载详解 #### 一、jspSmartUpload组件介绍 jspSmartUpload是jspsmart.com网站提供的一款高效、全面的文件上传组件,适用于Java Server Pages(JSP)开发环境。该组件主要特点包括: 1...
通过这个小例子,你可以了解到如何在实际项目中使用SmartUpload组件来处理文件上传。不过,需要注意的是,虽然SmartUpload简化了开发过程,但它并不包含所有安全特性,如防止文件覆盖、检查病毒等。因此,在实际部署...
在这个场景中,我们关注的是JSP中的文件上传和下载功能,以及如何利用SmartUpload组件来实现这一目标。SmartUpload是一个强大的文件上传组件,它简化了在JSP中处理文件上传的过程。 首先,我们要理解文件上传的基本...