一个简单的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;
@Override
protected 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();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}
分享到:
相关推荐
SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件SmartUpload文件上传下载方法包文件
smartupload组件实现文件上传功能
smartupload 文件上传jar
jspsmartupload文件上传api+jar文件
JspSmartUpload文件上传下载.zip
Smartupload文件上传的详细用法及源代码
smartupload文件上传下载,可以用于JSP页面,使用简单,该文件是一个可以自己测试运行的工程。
这是我用SmartUpload组件写的一个文件上传的小例子,解压缩后可直接导入到MyEclipse(Eclipse)中运行。这肯定不是文件上传的最好方案,仅供有兴趣的朋友们学习参考!
jsp技术SmartUpload文件上传例子
smartupload文件上传 文件上传 jspsmartupload
SmartUpload文件上传所使用到的jar包
里边有3个例子,smartupload文件上传下载。
jspsmartupload 文件上传工具,避免上传带有中文名的文件出现文件名乱码!为避免乱码问题,该jar包为改过源码后的jar 。可直接在项目中使用。
使用smartupload完成文件的上传,普通表单域处理,文件下载和文件批量下载
使用smartupload 进行文件上传简单实例。。
jsp技术SmartUpload文件上传经典例子.pdf
jspsmartupload文件上传下载测试代码,包含自己写的流式下载上传代码
简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload 简单 JSP 文件上传 源代码 smartupload
2、有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中; 3、还用ExtJS制作的多文件同时上传的例子,后台也是用Servlet处理。 4、用Servlet要注意web.xml映射的配置。