smartuploader是一种javabean,本质上其实就是一种特殊类,常用于文件上传和下载。
1、下载jar。
2、在webcontent的WEB-INF的lib中把jar直接文件夹拷过去。然后项目视图右键WEB-INF的lib,refresh刷新,就看见新添加的jar,同时在上方Libraries中的Web App Libraries中能看到新加的jar的类和方法等,是写import和class name的依据。
3、import。如果没有import,或者import错误,会提示not resolve。
4、发现诡异的事情:创建、初始化、设置最大长度等函数均没有问题,然而写到update和save函数时,就出现下划线报错。
5、开始怀疑jar包不完整有问题?重新下载并重新导入后,没有变化。
6、折腾了很久,决定研究报错信息:refer to misssing type Servlet Exception。在网上百度了missing type的原因,无果,而且问题不集中,
感觉各种原因都有。
7、感觉问题出在Servlet Exception,就百度缺少Servlet Exception的解决方法。这一搜还真搜到解决方案了:需要把TOMCAT添加到项目库里就可以了。
在项目property->build path中add library,选择server->tomcat,确定后保存,波浪线就没了。解决步骤详见网址:
http://www.educity.cn/wenda/467610.html
8、真是神奇,可能这俩函数的底层原理是用的Servlet实现的吧。
9、根据教程把提交页面和处理页面写完,编译,发现点击提交后报错,说save找不到路径"/upload"(书上介绍的新建文件夹的方法)。
10、问题比较常见,搜到很多说什么绝对相对路径?物理虚拟内存?我干脆就找绝对路径物理保存的saveAs函数,经测试能用。不足之处在于
如果提交的文件名带中文,那么保存后的文件名是乱码,不过内容是对的。这个问题应该会有解决方案,问题也不大。
su.upload();
int i = su.save("/upload");
File file = su.getFiles().getFile(0);
file.saveAs("D:/upload/" + file.getFileName(),SmartUpload.SAVE_PHYSICAL);