(1)当表单封装之后,不可以使用request得到参数,可是不封装却又无法得到上传的文件。
原因是表单被封装之后,里面传递的不再是文本数据,所以根本无法通过request.getParameter()方法取值。
此时可以通过smartupload中提供的request对象完成,但是在使用这个方法之前,必须保证smartupload对象已经初始化成功。
上传页面(使用的jar包是经过处理的,解决文件名上传后乱码的jar包)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>My JSP 'file.jsp' starting page</title>
</head>
<body>
<form action="samrtupload01.jsp" method="post" enctype="multipart/form-data">
<input type="text" name="name">
<input type="file" name="fileUpload">
<input type="submit" value="上传">
</form>
</body>
</html>
提交后的处理页面
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<body>
<%
request.setCharacterEncoding("UTF-8");
SmartUpload su = new SmartUpload();
//su.setCharset("UTF-8");
su.initialize(pageContext);//初始化上传
su.upload();//准备上传
String name = su.getRequest().getParameter("name");//这句话必须在前两句代码的后面
su.save("upload");//保存文件
%>
<%=name%>
</body>
</html>
(2)上传文件两种存放方式:
一般在系统开发的时候,需要将一些图片的信息保存在数据库中,此时有两种做法:
*第一种:直接在数据库中保存图片信息,通过BLOB字段储存。
|--如果上传的内容较大,使用此种方式肯定不方便。
|--数据库备份的时候只需要备份数据库就够了。
*第二种:直接将图片上传到一个文件夹之中,之后在数据库中通过一个普通的文本字段记录好文件上传的路径。
|--如果上传文件内容较大,使用此种方式方便管理。
|--数据库备份除了需要备份数据库中的信息,还要备份图片信息。