1.SmartUpload组件-File类
1.publicvoid saveAs(String):将文件换名另存。
参数是以/开头的文件路径,文件将被存放于当前项目的
根目录下
2.publicString getFieldName():获取HTML表单中此
上传文件的组件的名字
3.publicString getFileName():获取上传的“文件名.扩展名”
4.publicString getFilePathName():获取上传的文件全
名称(带路径)
5.publicString getFileExt():获取文件的扩展名
6.publicint getSize():获取文件长度,单位字节
1.publicint getCount():获取此次文件上传的总数目
2.publicFile getFile(int):获取指定索引处的文件
3.publiclong getSize():获取此次文件上传的总字节数
3.SmartUpload组件-Request类
1.publicString getParameter(String):获取客户端提交过来的参数值
2.publicString[] getParameterValues(String):获取客户端提交的多个同名组件的值,参数是表单组件的name值
4.SmartUpload组件-SmartUpload类
1.publicfinal void initialize(PageContext):初始化方法
2.publicvoid upload():文件上传。并检测文件大小和文件类型是
否符合要求
3.publicvoid setAllowedFilesList(String):设置允许上传的文件类
型,参数可以使用“,”号隔开
4.publicvoid setMaxFileSize(long):设置每个文件允许的最大字
节数
5.publicvoid setTotalMaxFileSize(long):设置允许上传的文件总
字节数
6.publicRequest getRequest():取得Request对象,用于取得表
单组件的值
7.publicvoid setDeniedFilesList(String):限制那些类型的文件不
允许上传。参数是文件的扩展名列表,可以使用“,”号隔开
8.publicvoid setContentDisposition(null):在下载前调用。若不
设定,下载的文件如果是doc文档,浏览器将调用word打开;
如果是pdf文档,浏览器将调用Acrobat打开
5.上传文件表单的设计
6.示例代码
1.创建FileItem对象工厂,可以设定缓冲区大小和存放临时文件的目录
try {
DiskFileItemFactory factory =new DiskFileItemFactory();
// 2.处理表单数据,将数据封装到FileItem对象中
ServletFileUpload servletFileUpload=new ServletFileUpload(factory);
servletFileUpload.setHeaderEncoding("UTF-8");
// 3.FileItem解析request请求来封装表单张的元素和数据
List<FileItem> items=servletFileUpload.parseRequest(req);
// 4.遍历所有的文件名
Book book=new Book();
for(FileItem item:items){
System.out.println("控件名:"+item.getFieldName());
// 5.如果是普通控件
if(item.isFormField()){
// 自动将控件值填充到目标Bean
System.out.println("控件值:" + item.getString("UTF-8"));
BeanUtils.setProperty(book , item.getFieldName(), item.getString("UTF-8"));
}else{
// 6.如果是文件控件
String path=req.getSession().getServletContext().getRealPath("/upload")+separator+item.getName();
book.setImagename(item.getName());
System.out.println("绝对路径:"+path);
item.write(new File(path));
}
}
BookDao dao=new BookDaoImp();
dao.update(book);
resp.sendRedirect(home+ "/Ht_showBooks.jsp");
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}