首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SmartUpload文件下传

2012-09-03 
SmartUpload文件上传一个简单的SmartUpload示例?使用SmartUpload使得文件上传异常简单,但同时有个问题,Sma

SmartUpload文件上传

一个简单的SmartUpload示例

?

使用SmartUpload使得文件上传异常简单,但同时有个问题,SmartUpload不支持本地文件校验,即不管目录是否存在,都会上传成功,如果给定目录不存在,SmartUpload在保存时,会创建一个新的文件(文件名即为给定路径的最后一个路径分隔符开始的字符串),这非常糟糕。

?

以下是SmartUpload上传的示例代码。

?

package com.zwh.smartupload;import java.io.IOException;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.File;import com.jspsmart.upload.Files;import com.jspsmart.upload.SmartUpload;import com.jspsmart.upload.SmartUploadException;public class UploadServlet extends HttpServlet {/** *  */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//创建SmartUpload对象SmartUpload myupload = new SmartUpload();try {// 使用ServletConfig初始化SmartUpload对象myupload.initialize(this.getServletConfig(),req,resp);// 值得注意的是,如果设置了上传文件类型,如果上传的文件中有不允许的类型,SmartUpload会抛出异常// 设置允许上传的文件类型,格式:"jpg,jpeg,gif"myupload.setAllowedFilesList("");// 设置不允许上传的文件类型,格式:"exe,bat"myupload.setDeniedFilesList("");// 上传myupload.upload();// 使用SmartUpload上传时,必须从SmartUpload对象中获取的Request才能取得其它非文件类组件的值String newFileName = myupload.getRequest().getParameter("newFileName");String newDirectory = "d:\";// 获取上传的文件列表对象 Files files = myupload.getFiles();int size = files.getCount();// 循环得到每个文件for(int i = 0;i<size;i++){File f = files.getFile(i);// 判断文件路径是否存在。注意这里只能判断文件组件的值是否为空,而不是判断路径是否有效或本地文件是否存在 if(f.isMissing()){//}// 获取文件名 String fname = f.getFileName();// 获取文件绝对路径String fPath = f.getFilePathName();// 获取文件的扩展名 String fExt = f.getFileExt();// 保存文件 myupload.save(newDirectory, SmartUpload.SAVE_PHYSICAL);// 判断文件是否存在,并已上传文件名为新文件名 java.io.File file = new java.io.File(newDirectory + fname);if(file.exists()){file.renameTo(new java.io.File(newDirectory + newFileName));}}} catch (SQLException e) {e.printStackTrace();} catch (SmartUploadException e) {e.printStackTrace();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {this.doGet(req, resp);}}

?

热点排行