切片上传文件时,后端拿到的文件名为blob问题

表现:
如标题所言,我在将文件切片上传时,后端无法拿到正确的文件命。

分析:
我们并没有手写文件命,所以这件事情只能是系统搞的鬼,打开浏览器控制台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块中的代码,可以在这里处理错误信息,例如提示用户下载失败或重新尝试下载等操作。