Vue前后端分离完成文件上传

Vue前后端分离完成文件上传

1、为文件上传框绑定一个ref
<input type="file" id="imgfile"  ref="myFile" style="display: none" onchange="imgfileChange()" />
2、指定一个方法将改文件上传

1、let formData=new FormData();//新建一个表单

2、formData.append('file',file );//将获取的文件追加到表单

let myFile=this.$refs.myFile;
let files=myFile.files;
let file=files[0];
let formData=new FormData();//新建一个表单
formData.append('file',file );//将获取的文件追加到表单
//发送axios将表单发送
axios({
    method:'post',
    url:'http://localhost:8989/place/save',
    data:formData,
    headers:{
        'Content-Type': 'multipart/form-data'//必须要指定
    }
}).then((res=>{
    console.log(res.data);
}))
3、指定文件上传的位置
upload.dir=G:/IdeaProjects/springboot/055-springboot-travels/src/main/resources/static/images
4、引入文件工具类的依赖,便于拿到文件后缀名
<dependency>     
    <groupId>commons-fileupload</groupId>      
    <artifactId>commons-fileupload</artifactId>  
    <version>1.4</version>
</dependency>
5、后端写一个控制器接收请求

获取文件后缀

String extension = FilenameUtils.getExtension(file.getOriginalFilename());

使用时间戳的方式重命名文件

String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) +"."+ extension;

@Value("${upload.dir}")
private String realPath;

@PostMapping("/save")
public String save(MultipartFile file) {//无需@RequestBody
    System.out.println(file.getOriginalFilename());
    //文件上传
    String extension = FilenameUtils.getExtension(file.getOriginalFilename());
    String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) +"."+ extension;
    try {
        file.transferTo(new File(realPath, newFileName));
    } catch (IOException e) {
        e.printStackTrace();
    }
    return "ok";
}

这样,上传的文件就保存到upload.dir对应的路径中了

在SpringBoot和Vue前后端分离项目中,实现文件上传和回显可以通过以下步骤完成。 首先,前端部分需要创建一个文件上传的组件,可以使用Vue的axios库来发送文件到后端。在组件中,通过input标签的type属性设置为file,用户可以选择要上传的文件。然后,通过axios库将文件发送到后端的API接口。 在后端部分,需要创建一个接收文件上传的API接口。可以使用SpringBoot的MultipartFile来接收文件。在接口中,可以对文件进行处理,例如保存到服务器的指定路径下。 接下来,为了实现文件回显,可以在后端创建一个API接口,用于获取已上传的文件列表。在前端部分,可以通过axios库调用该API接口,获取文件列表,并在页面上展示出来。 需要注意的是,前后端分离的项目中,前端和后端是独立的两个部分,需要通过API接口进行通信。因此,在前端部分需要配置好API接口的地址,以便正确地发送请求和接收响应。 以上是实现SpringBoot和Vue前后端分离文件上传和回显的一般步骤。具体的实现细节可以根据项目需求进行调整和扩展。 #### 引用[.reference_title] - *1* *3* [Vue+SpringBoot实现前后端分离文件上传](https://blog.youkuaiyun.com/oppo5630/article/details/79318715)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Springboot+vue前后端分离实现文件上传](https://blog.youkuaiyun.com/qq_51742972/article/details/123705718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值