java使用smortupload上传和下载文件
smortupload
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的上传和下载结束。
以上就是java使用smortupload上传和下载文件的详细内容,更多关于java smortupload上传下载文件的资料请关注脚本之家其它相关文章!
相关文章
Spring Controller接收前端JSON数据请求方式
这篇文章主要为大家介绍了Spring Controller接收前端JSON数据请求方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-07-07
Java8时间处理进阶:Duration与Period深度剖析时间与日期间隔实战
本文全面剖析Java8日期时间API中的两大核心类——Duration和Period,从基础创建到高级实战,深入讲解时分秒纳秒级时间间隔与年月日期间隔的精准计算方法,包含计时器、年龄计算、合同到期提醒等真实业务案例,助你彻底掌握Java8时间间隔处理技巧2026-04-04


最新评论