java 前端分片上传 后端现在拿到的是blob但是想拿到实际文件名
时间: 2024-10-24 18:04:05 浏览: 24
Vue.Js及Java实现文件分片上传代码实例
5星 · 资源好评率100%
在Java前端分片上传(通常用于处理大文件上传)过程中,用户将文件分割成多个小块,然后逐块发送到服务器。前端一般会使用HTML5的File API来操作文件,如`FormData`对象配合`fetch`或`XMLHttpRequest`进行分块上传。
当后端收到前端传来的Blob对象时,Blob是一种二进制数据的抽象表示,它并不包含文件的实际名称信息。如果你想要获取上传文件的真实文件名,前端需要在上传的时候附加文件名或者其他唯一标识到请求头或者`FormData`的数据字段中。
例如,在JavaScript里可以这样做:
```javascript
let formData = new FormData();
formData.append('file', file, fileName); // fileName是你想保存的文件名
fetch(url, {
method: 'POST',
body: formData,
headers: { 'Content-Type': 'multipart/form-data' }
}).then(response => ...);
```
在后端,你需要从请求中解析这个额外的信息来获取文件名。具体的实现取决于你使用的服务器框架,比如Spring MVC、Express.js等。通常,你可以从`multipart/form-data`的边界内找到文件名字段。
如果后端已经接收到Blob,可以通过序列化转换为File对象,然后再读取其name属性来获取文件名:
```java
// Spring Boot示例
MultipartFile file = ...; // 假设这是已接收的Blob转成的MultipartFile
String originalFileName = file.getOriginalFilename(); // 获取原始文件名
```
阅读全文