vue和springboot上传文件到mysql的方法
时间: 2024-01-19 13:04:25 浏览: 60
vue+springboot 大文件上传
5星 · 资源好评率100%
首先,在前端使用 Vue.js 实现文件上传,可以使用 HTML5 中的 FormData 对象。具体实现方式如下:
```html
<template>
<div>
<input type="file" ref="fileInput" @change="handleFile">
<button @click="uploadFile">上传</button>
</div>
</template>
<script>
export default {
methods: {
handleFile() {
this.file = this.$refs.fileInput.files[0];
},
uploadFile() {
const formData = new FormData();
formData.append('file', this.file);
// 发送文件到后端
// ...
}
}
};
</script>
```
接着,在后端使用 Spring Boot 实现文件上传,可以使用 Spring 提供的 MultipartFile 类型。具体实现方式如下:
```java
@RestController
public class FileController {
@Autowired
private FileService fileService;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
// 保存文件到数据库
fileService.saveFile(file.getInputStream());
return "上传成功";
}
}
@Service
public class FileService {
@Autowired
private FileRepository fileRepository;
public void saveFile(InputStream inputStream) throws IOException {
byte[] bytes = IOUtils.toByteArray(inputStream);
FileEntity fileEntity = new FileEntity();
fileEntity.setFile(bytes);
fileRepository.save(fileEntity);
}
}
@Entity
public class FileEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Lob
private byte[] file;
// getter, setter...
}
@Repository
public interface FileRepository extends JpaRepository<FileEntity, Long> {
}
```
以上是 Vue.js 和 Spring Boot 实现文件上传到 MySQL 的基本方法,实现时需要注意数据类型和参数传递方式。
阅读全文