jsp上传怎样改才能把文件存放在指定目录

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:13:37
public void addPhoto(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
String filePath = "/photo";
String messages="";
String forward="";
String href="";
PhotoDao photoDao = new PhotoDao();
PhotoBean photoBean = new PhotoBean();
SmartUpload su = new SmartUpload();
long maxsize = 2 * 1024 * 1024;

try {
su.initialize(this.getServletConfig(), request, response);
su.setMaxFileSize(maxsize);
su.setAllowedFilesList("jpg,gif,bmp");
su.upload();
String photoInfo=su.getRequest().getParameter("info");
if(photoInfo==null||photoInfo.equals("")){
messages="请输入照片描述信息!";
forward="/admin/error.jsp";
href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
}
else{

saveAs作用:将文件换名另存。

原型: public void saveAs(JAVA.lang.String destFilePathName)

或 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:/uploadsample.zip。

而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)执行后若Web应用程序的根目录是webapps/JSPsmartupload,则另存的文件名实际是webapps/PsmJSartupload/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,以便移植。