注意:没有解决中文乱码的问题,要解决只要下载修改过的jspsmartupload即可
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
//设置每个上传文件最大值
su.setMaxFileSize(10000000);
//设置所有上传文件的最大值
su.setTotalMaxFileSize(20000000);
//设置允许上传的文件类型
su.setAllowedFilesList("doc,docx");
//设置不允许上传的文件类型
su.setDeniedFilesList("exe,bat,jsp,htm,html");
try {
su.upload();
//获取上传的第一个文件,以后的文件可以循环获取
com.jspsmart.upload.File file=su.getFiles().getFile(0);
//获取文件扩展名
String ext=file.getFileExt();
//保存文件
file.saveAs("info\\otherfunction\\userupload\\entry_form\\form."+ext,file.SAVEAS_VIRTUAL);
} catch (Exception e) {
e.printStackTrace();
}
public void saveAs(java.lang.String destFilePathName, int optionSaveAs)
其中,destFilePathName是另存的文件名,optionSaveAs是另存的选项,该选项有三个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则表示让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会选择SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL。
例如,saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)执行后若Web服务器安装在C盘,则另存的文件名实际是c:\upload\sample.zip。而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)执行后若Web应用程序的根目录是webapps/jspsmartupload,则另存的文件名实际是webapps/jspsmartupload/upload/sample.zip。saveAs("/upload/sample.zip",SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录,则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL),否则同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)。
建议:对于Web程序的开发来说,最好使用SAVEAS_VIRTUAL,以便移植。