首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php使用进度条直接上传到s3

使用php使用进度条直接上传到s3
EN

Stack Overflow用户
提问于 2012-02-17 01:27:00
回答 2查看 4.6K关注 0票数 5

关于这个问题,使用进度条将文件直接上载到S3,我想知道是否有一个更新或其他方法来做到这一点,而不使用闪存或java小程序?

我试过使用这个swfupload_s3 http://swfupload.org/forum/generaldiscussion/2185,它可以工作,但不幸的是,进度条会达到100%,

(1)本地代理服务器和一些反病毒软件会导致这种行为。反病毒软件没有将上传发送到服务器,而是拦截上传并接受整个文件。SWFUpload已经发送了整个文件并显示了100%。这件事发生得很快,因为还没有发出去,都是在当地发生的。反病毒然后扫描被截获的文件并将其发送到服务器。与此同时,SWFupload保持在100%的水平上。一旦反病毒发送了文件,服务器就会响应,SWFUpload就会“完成”(2)已知的问题。我们已经记录在案了。周围没有工作。当反病毒干扰上传http://swfupload.org/forum/generaldiscussion/642 (1) http://code.google.com/p/swfupload/issues/detail?id=213 (2)时,这将只适用于任何客户端。

我已经干了两天了,但我似乎找不到别的办法了。还是根本就没有?

EN

回答 2

Stack Overflow用户

发布于 2012-03-15 15:25:20

这里有一个开放源码的php脚本,带有一个用于文件上传的S3 API,它可以实时返回上传的进度,如果您愿意的话,您也可以定制Uploader UI:

http://www.plupload.com/

票数 0
EN

Stack Overflow用户

发布于 2017-04-29 21:19:51

我成功地在AWS的PHP v3上完成了这个工作。

代码语言:javascript
复制
$client = new S3Client(/* config */);

$result = $client->putObject([
    'Bucket'     => 'bucket-name',
    'Key'        => 'bucket-name/file.ext',
    'SourceFile' => 'local-file.ext',
    'ContentType' => 'application/pdf',
    '@http' => [
        'progress' => function ($downloadTotalSize, $downloadSizeSoFar, $uploadTotalSize, $uploadSizeSoFar) {
            printf(
                "%s of %s downloaded, %s of %s uploaded.\n",
                $downloadSizeSoFar,
                $downloadTotalSize,
                $uploadSizeSoFar,
                $uploadTotalSize
            );
        }
    ]
]);

这在AWS文档- S3截面中得到了解释。它的工作方式是公开GuzzleHttp的progress属性--可调用的,如这就是答案中所解释的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9321677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档