springboot vue批量下载文件,vue springboot图片上传
这篇文章主要为大家详细介绍了跳羚队实现文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了跳羚队实现文件上传下载的具体代码,供大家参考,具体内容如下
一、文件上传(基于axios的简单上传)
所使用的技术:axios、springboot、vue
实现思路:通过h5:输入元素标签进行选择文件,获取所选选择的文件路径,新fromdata对象,设置fromdata的参数,设置爱可信对应的请求头,最后通过爱可信发送邮政请求后端服务。后端服务同过多文件进行文件接收。具体代码如下:
前端代码:
1、创建某视频剪辑软件对象
从“vue”导入某视频剪辑软件
从导入应用程序 App.vue
从导入路由器。/路由器
从导入存储。/商店
从" axios "导入超文本传送协议(Hyper Text Transport Protocol的缩写)
vue。配置。生产提示=假;
Vue.prototype. $ http=http
window.vm=new Vue({
路由器,
店,
render: h=h(App)
}).$ mount("# app ")
2、实现上传组件
在投入标签中添加改变事件监听,当发生改变时调用起来方法。
模板
你好
投入
class=file
name=file
type=file
accept=image/png,image/gif,image/jpeg
@change=up
/
/div
/模板
脚本
导出默认值{
名称:“HelloWorld”,
道具:{
消息:字符串
},
方法:{
向上(e) {
设file=e . target。文件[0];
警报(文件。姓名);
console.log(文件);
let param=new FormData();//创建形式对象
param.append(file ,file);//通过附加向形式对象添加数据
控制台。日志(参数。get( file ));//表单数据私有类对象,访问不到,可以通过得到判断值是否传进去
让配置={
标题:{ Content-Type : multipart/form-data }
};//添加请求头
这个1000美元http。帖子( http://127。0 .0 .1:8081/数据/向上,参数,配置)。然后(响应={
控制台。日志(响应。数据);
}).接住(
错误={
警报(失败);
}
);
}
}
};
/脚本
!-添加"限定范围"属性以将半铸钢钢性铸铁(Cast Semi-Steel)仅限制到此组件-
样式范围语言=少
/风格
后端代码:
上传文件代码
@RequestMapping(value=/up ,method=RequestMethod .帖子)
@ResponseBody
公共结果字符串上传(@ request param( file )多部分文件file){
尝试{
log.error(开始上传!);
字符串原始文件名=文件。get original filename();
InputStream输入流=文件。getinputstream();
string path= d:/2020 test/;
文件file1=新文件(路径原始文件名);
如果(!file1.getParentFile().exists()){
file1.getParentFile().mkdirs();
}
文件。transferto(文件1);
log.info(上传成功!);
} catch (IOException e) {
e。printstacktrace();
}
ResultString字符串结果=新结果字符串();
字符串结果。setmsg( sue );
字符串结果。setdata(“文件”);
返回stringResult
}
二、文件下载
通过反应输出流返回文件内容,核心代码设置下载文件的名字(RES . set header(" Content-Disposition "," attachmentfilename=" Java。网。URL编码器。编码(真实文件名。trim(),“UTF-8”));)
@RequestMapping(value=/get ,method=RequestMethod .获取)
公共空的下载文件(HttpServletResponse res) {
字符串真实文件名= C:/Users/熊绎/桌面/12 .xls ;
文件excelFile=新文件(真实文件名);
RES . setcharacterencoding(" UTF-8 ");
res.setHeader(content-type , application/octet-stream;charset=UTF-8 );
资源设置内容类型(‘应用/八位字节流;charset=UTF-8 );
//加上设置大小下载下来的。文件格式文件打开时才不会报“Excel已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃"
//RES . add头( Content-Length ,字符串。(excelfile的值。length()));
尝试{
RES . set标头( Content-Disposition ,附件;filename= Java。网。URL编码器。编码(真实文件名。trim(), UTF-8 );
} catch(UnsupportedEncodingException E1){
E1。printstacktrace();
}
字节[]缓冲区=新字节[1024];
BufferedInputStream bis=null
输出流操作系统=空
尝试{
OS=RES . get输出流();
bis=新缓冲区输入流(新文件输入流(新文件(真实文件名)));
int I=bis。读(buff);
而(我!=-1) {
os.write(buff,0,buff。长度);
OS。flush();
I=bis。读(buff);
}
} catch (IOException e) {
e。printstacktrace();
}最后{
如果(bis!=null) {
尝试{
之二。close();
} catch (IOException e) {
}
}
}
ResultString字符串结果=新结果字符串();
字符串结果。setmsg( sue );
字符串结果。setdata(尼玛比);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。