繁体   English   中英

如何使用MAMP将文件上传到Amazon S3?

[英]How to upload file to amazon s3 using MAMP?

我正在尝试将文件推送到Amazon s3文件桶。

我通过html表单发布文件。

我尝试生成这样的文件路径($ file是foreach的一部分,因为我需要在表单提交中支持多个文件。)

$file['tmp_name'].'/'.$file['name'];

这将输出这样的文件路径

/Applications/MAMP/tmp/php/phpZDcVQv/pdf.pdf

/ Applications / MAMP / tmp / php /存在,但里面什么也没有。 我已为所有人设置了对该文件夹的读写权限。

我使用一个库将图像发布到Amazon: https : //github.com/tpyo/amazon-s3-php-class它也抱怨我提供的文件路径不存在。 它正在运行如下检查:

if (!file_exists($file) || !is_file($file) || !is_readable($file))

为什么不添加文件? 我引用了错误的文件夹吗? 包含代码的文件位于/ web / projectname /中。互联网上有人说关于php直接删除临时文件的一些不清楚的地方。 这是响应运行后的吗? 我需要以某种方式解决这个问题吗?

产生问题的最简单的代码:

foreach ($_FILES as $file) {
    $filepath = $file['tmp_name'].'/'.$file['name'];
    if(file_exists($filepath)){
        echo 'true <br />';
    }else{
        echo 'false <br />';
    }

}

即使文件已上传,此回显也为false。

$ filepath包含我上面描述的路径。

手册所述

$_FILES['userfile']['tmp_name']服务器上已存储上传文件的文件的临时文件名。

$_FILES['userfile']['name']客户端计算机上文件的原始名称。

这意味着file_exists($file['tmp_name'])应该为true

路径$file['tmp_name'].'/'.$file['name']是伪造的,因为$file['name']仅用于通知您原始名称,但在使用该名称时不使用将上传的文件保存在服务器上。

因此,在您的示例中, /Applications/MAMP/tmp/php/phpZDcVQv实际上是上传的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM