表现:
如标题所言,我在将文件切片上传时,后端无法拿到正确的文件命。
分析:
我们并没有手写文件命,所以这件事情只能是系统搞的鬼,打开浏览器控制台NetWork能够看到万恶之源:
说明的确是系统给我们的文件流自动命名为了blob,所以才导致了后端拿不到正确文件命。
解决:
formData的append可以接受三个参数,通过第三个参数我们可以手动设置filename参数:
formData.append("file", file, this.container.file.name);
效果:
完美解决!
有帮到你的话给阿日点个赞吧!
切片上传文件时,后端拿到的文件命为blob问题表现:如标题所言,我在将文件切片上传时,后端无法拿到正确的文件命。分析:我们并没有手写文件命,所以这件事情只能是系统搞的鬼,打开浏览器控制台NetWork能够看到万恶之源:说明的确是系统给我们的文件流自动命名为了blob,所以才导致了后端拿不到正确文件命。解决:formData的append可以接受三个参数,通过第三个参数我们可以手动设置filename参数:formData.append("file", file, this.containe
Blob,Binary Large Object的缩写,二进制类型的大对象,代表不可改变的原始数据
在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。
Blob基本用法
Blob对象
Blob对象指的是字节序列,并且具有size属性,是字节序列中的字节总数,和一个type属性,它是小写的ASCII编码的字符串表示的媒体类型字节序列。
size:以字节数返回字节序列的大小。获取时,符合要求的用户代理必须返回一个FileReader或一个FileReaderSync对象可以读取的总字节数,如果Blob没有要读取的字节,则返回0 。
type:小写的ASCII编码字符串
Blob对象表示一个不可变、原始数据的类文件对象。Blob 表示的不一定是JavaScript原生格式的数据。File接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
问题描述
使用vue-cropper插件进行图片切割头像,将切割后的头像转为blob文件上传,与后端对接的时候发现,blob的filename默认为‘blob’,导致后端接受数据的时候,无法根据上传图片的后缀名保存图片,全部为.blob文件,从而导致接口无法返回正确的url地址。这之中上传文件使用的是el-
Blob对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成ReadableStream来用于数据操作。
Blob 表示的不一定是JavaScript原生格式的数据。File接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
详细了解请移步:Blob - Web API 接口参考 | MDN
1、基于vue,以pos...
MultipartFile 通过 MultipartFile .transferTo( new File()), 仅需要这步骤,就可以把图片存到服务器所在的电脑的任意一个盘或者路径里面。
这里需要注意的一点:
new File("d:/stair/second...
axios是一个基于Promise的HTTP客户端库,支持在浏览器和Node.js中发送HTTP请求。当使用axios下载文件时,如果需要指定响应的数据类型为blob,则可以使用responseType配置选项。
在使用responseType为blob时,如果后端出现错误,可以通过catch捕获错误信息并处理。例如:
```javascript
axios({
method: 'get',
url: '/download/file',
responseType: 'blob'
}).then((response) => {
// 处理下载的文件
}).catch((error) => {
// 处理捕获到的错误信息
在上述代码中,当后端出现错误时,会触发catch块中的代码,可以在这里处理错误信息,例如提示用户下载失败或重新尝试下载等操作。