zoukankan      html  css  js  c++  java
  • 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)
                       }
  • 相关阅读:
    继承
    JAVA接口的继承与集合
    JAVA接口
    c++程序—敲桌子
    c++程序—水仙花数
    c++程序—while猜数字游戏
    c++程序—switch分支
    c++程序—三目运算符
    c++程序—if语句实践
    c++程序—选择结构
  • 原文地址:https://www.cnblogs.com/gopark/p/15006493.html
Copyright © 2011-2022 走看看