首页 > 解决方案 > 使用crome.js 将Blob 上传到s3

问题描述

我真的需要一些帮助。我以前从未使用过 blob 作为资源,但我需要使用crome.js,它只输出作为 blob 或 base64 上传的文件。这是它的 github 存储库:https ://github.com/shpontex/cropme 。我让它 100% 在我身边工作,它给了我输出,但我不知道如何从这里开始。我试图将 blob 作为文件上传到 Amazon S3,但它所做的只是将文件保存到 S3 而不带扩展名,当您尝试打开它时,它是一个 blob 链接。这是无用的,因为一旦清除浏览器,blob 就会被删除。上传 base64 路由也是如此。我只是需要一些指导。

这是来自cropme的app.js中给出结果的函数:

        let img = document.getElementById('cropme-result')
        this.position = this.cropme.position()
        this.cropme.crop({
          type: 'blob', <-- here you can set it to either 'blob' or 'base64'
          width: 600
        }).then(function(res) {
          img.src = res
          document.getElementById('croppedimage').src = img.src
        })
      },

以下是将文件上传到 S3 的部分代码:


try {

$imagecropped = $_POST['image'];


    $key = 'photos/random';



        // S3 details
        $s3Client = new S3Client([
            'version'     => 'latest',
            'region'      => 'us-west-2',
            'credentials' => [                
                'key'    => 'MYKEY',
                'secret' => 'MYSECRET',
            ],
        ]);

        $result = $s3Client->putObject([
            'Bucket' => 'uploads',
            'ACL' => 'public-read',
            'Key' => $key,
            'Body' => $imagecropped,
        ]);

标签: phpamazon-s3vuejs2

解决方案


推荐阅读