Struts文件上传及cos.jar文件上传
* 必须在页面form表单中定义enctype="multipart/form-data"属性,才能实现文件的上传
1.sturts自带的文件上传功能,表单中file的类型为file,则在Form填充中须有相应的属性file类型org.apache.struts.upload.FormFile
在Action中直接操作FormFile得到该文件的输入流(getInputStream()),文件名(getFileName()) ,文件大小(getFileSize())等文件的信息
在根据文件的流操作对文件进行保存。
//文件流的读入与写出
BufferedInputStream bis = new BufferedInputStream(formFile.getInputStream());
//savePath为文件需要保存的路径
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(savePath)));
//读写文件流
int b = 0;
while((b = bis.read()) != -1) {
bos.write(b);
}
//关闭流操作
bos.close();
bis.close();
2.采用COS.jar插件上传文件
* 需要导入cos.jar包到WEB-INFO/lib目录下
组件中com.oreilly.servlet.multipart.MultipartParser类操作文件上传,该类有isFile()与isParam()方法可以判断页面提交的表单是参数还是
文件,再将该类的实例转型为FilePart或ParamPart,FilePart实例可实现对文件的信息(getFileName())等。
* 对文件的上传的操作直接通过流直接写入文件,savePath为文件保存路径、fileSize为文件大小
File file = new File(savePath);
long fileSize = filePart.writeTo(file);
* 也可通过操作输入流filePart.getInputStream()进行文件的上传,方法如上面操作