amis项目,图片上传剪切功能问题

最近在做amis低代码平台时,发现图片上传组件,在使用剪切crop功能时,生成的文件格式不同,导致后台接口接收不到相应的图片数据。

经查资料,发现剪切后的文件被生成了blob数据,而原来没有crop时生成的是file文件,这是当后台接口不接收blob数据时,需要在拦截器中将blob转换为file文件即可

两次请求的数据格式如下:

1、 这种为正确的请求,file格式数据展示

 

 

 

2、 这种为错误的请求,blob格式的数据展示

 

 

此时就需要转换数据格式了

复制代码
                // 根据图片上传组件的url约定进行处理
                if (splitUrl(url).query == 'cropBlobType=1') {
                  // 经剪切过的数据为Blob数据,需将其转换为file数据
                  const fileData:any = data.get("file");
                  if (fileData) {
                    var file = new File(
                      [fileData], 
                      `${randomString()}.png`, 
                      {
                        type: fileData.type,
                        lastModified: Date.now()
                      }
                    );
                    // 最后再将转换后的file文件重新赋值给formData格式的data
                    data.set('file',file)
                   }
复制代码

 

posted @   极客小乌龟  阅读(570)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示