热点新闻
使用smortupload上传和下载文件
2023-07-11 10:56  浏览:305  搜索引擎搜索“富博农业网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在富博农业网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

smortupload是一套上传组件包,可以轻松实现上传及下载功能,可以限制上传文件的类型,也可以轻易得到文件的后缀名。
smortupload是以jar包的形式给出的,再使用的时候要放到web的lib目录下进行配置使用。由于要上传文件,则必须对表单进行封装,因为传递的不是普通的二进制文件。在from标签里要使用enctype="multipart/form-data"转成二进制的文件

<form action="/newbook" method="post" id="register" name="upload" enctype="multipart/form-data">

将表单提交到servlet后不能再时使用原先方法里面的请求和响应对象,要初始化smortupload组件里的请求和响应对象,首先创建smortupload对象

// 创建smortupload对象 SmartUpload su = new SmartUpload(); // 初始化请求和响应对象 su.initialize(this.getServletConfig(),req,resp); // 创建一个新的请求对象 Request req1 = su.getRequest();

通过smortupload组件中的upload上传

// 上传过程 try { su.upload(); } catch (SmartUploadException e) { e.printStackTrace(); }

获取到上传的文件对象(注意这个对象所在的包)

Files fs = su.getFiles(); // 获取第一个文件 File f = fs.getFile(0); // 获取文件名称 String fname = f.getFileName();

把上传的文件保存到指定的位置,这里的路径推荐是使用相对路径

try { su.save("D:/Java/BookShop/web/img/bookpicture"); } catch (SmartUploadException e) { e.printStackTrace(); }

使用上面新创建的请求对象获取到表单里面的参数

String bookname = req1.getParameter("bookname");

注意这里拿到的是一个二进制的数据,所以我们在存入数据库之前要进行转码,使用utf-8的编码格式

String bookname1 = new String(bookname.getBytes(),"utf-8");

然后连接数据库就可以了。
文件的下载

// 获取需要下载的文件名 String filename = req.getParameter("filename"); // 得到文件地址 String url = "/uploadfile/"+filename; // 将响应的内容设置为通用的二进制流 resp.setContentType("application/octet-stream"); // attachment 告诉浏览器以附件的方式下载文件(弹出下载框) filename = URLEncoder.encode(filename,"utf-8"); resp.addHeader("Content-Disposition","attachment;filename="+filename); // 发送 req.getRequestDispatcher(url).forward(req,resp); // 清空缓存区:将服务端缓存区的文件内容,立即传送给客户端 resp.flushBuffer();

到此smortupload的上传和下载结束。

发布人:b9f8****    IP:117.173.23.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发