smartupload学习笔记

SMARTUPLOAD组件
用于文件上传下载的组件
在项目中引入jspsmartupdaload.jar,容器的classpath
设置form表单的enctype以后,method必须为post

jspsmartupload的jar包下的类
File类提供对文件的部分操作,给文件重命名
saveAs(String newName)
isMissing() 判断用户是否选择了文件
String getFiledName() 获得上传组件的的name属性值
String getFileName() 获得上传文件的文件名称,不含路径,带有扩展名


直接应用上手吧,基础在bb中引出
首先获得jspsmartupload.jar文件,引入到web项目中

文件的上传
1,选择文件,并提交
整个uploadPage.jsp文件在表单域中加入选择文件的控件,input type="file"
通过submit按钮进行提交
在form标签中指定提交方式post,提交给谁处理saveFilePage.jsp,以及enctype="multipart/form-data"

2,将文件保存
新建一个saveFilePage.jsp来处理文件的保存
保存文件流程
SmartUpload su=new SmartUpload();//用于保存文件的对象
su.initialize(PageContext);//在jsp页面中可直接选择pageContext内置对象为参数,初始化文件传输环境
//在传输之前可以进行一些设置
//比如可以传输什么类型的文件 setAllowedFilesList("png,jpeg,txt");
//不能传输什么文件 setDeniedFilesList("docx,pptx");
//限制总文件传输大小 setTotalMaxFileSize(long fileSizeByte)
//限制单个文件的大小  setMaxFileSize(long allFileSizeByte)
//必须要做的事,设置charset,   su.setCharset("utf-8");
su.upload();//准备传输
su.save("des path");//将所有上传的文件保存到指定路径下,并返回保存的文件数量

以上就是对文件的保存,文件保存到哪去了,是不是有疑问呢?
默认是在真正部署应用服务器中,在哪个应用下,
比如将项目部署在tomcat中,在jsp项目中运行的,而最后保存的路径su.save("upload");
那么文件会保存在tomcat部署jsp应用下,upload文件夹中;
如果是通过eclipse,关联的tomcat,在jsp项目中运行,最后保存路径为su.save("upload");
那么文件会保存在本机中,eclipse的workspace下.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsp\upload\下


刚才没有对上传的文件进行任何操作,当然也可以通过
SmartUpload实例su.getFiles() 获得Files类的对象
该类封装上传上来的所有文件
可以通过该类获得上传文件总数 int getCount()
获得特定index处的File对象  File getFile(index)  ##此处File是smartupload.jar中的,而不是java.io中的
获得上传所有文件的总大小 long getSize()

关于File类,
我们可以获得文件的名称, String getFileName();
以及上传的文件组件的name属性  String getFiledName();
是否上传文件了  boolean isMissing();
保存文件重命名  void saveAs(newName);


#$%^&^&^%#$@!#$#%^$&%*&^$%#@%$^%&^*&(@
&^%#$@@%^$   文件的下载    ¥#¥T#¥T#
@$%$^%&^*^&*%$&^#^*^(&^%^$@#$$@#@$T@@#
首先确定下载的文件目录在哪??
怎么处理下载的文件
在servlet中进行处理文件下载
文件存储的路径:request.getServletContext().getRealPath("/")+"upload"
文件路径:request.getServletContext().getRealPath("/")+"upload"+"/"+filename   
文件的名称当作参数传递过来,注意可能需要进行编码,解码操作
通过java.io.File 可以获得所有可下载的文件列表
File files=new File(request.getServletContext().getRealPath("/")+"upload");
List<File>  fileList=files.listFiles();

下载文件的操作:
SmartUpload su=new SmartUpload();//创建下载文件的对象
su.initialize(ServletConfig,HttpRequestServlet,HttpResponseServlet);//初始化下载环境
su.download("file name");//此处地址为绝对地址,通过存储路径+filename

posted @ 2018-08-23 15:09  gulchan  阅读(1375)  评论(0编辑  收藏  举报