【问题标题】:Upload Image tmp file on Amazon EC2在 Amazon EC2 上上传图像 tmp 文件
【发布时间】:2015-11-30 03:12:22
【问题描述】:

我正在尝试用 PHP 构建一个简单的图像上传脚本。

我收到“上传完成!”但它没有将图像存储在我服务器上的“上传”目录中。我在 Amazon AWS 上使用 EC2 实例。

有什么想法吗?

<?php
//properties of the uploaded file
$name = $_FILES["file"]["name"];
$name = $_FILES["file"]["type"];
$name = $_FILES["file"]["size"];
$temp = $_FILES["file"]["tmp_name"];
$error = $_FILES["file"]["error"];

if($error > 0) 
	die("Error uploading file!");

else {
	move_uploaded_file($temp, "uploads/".$name);
	echo "Upload complete!";
}
     

?>   

【问题讨论】:

  • 可能是ec2实例的所有权问题,我之前也遇到过类似的问题,请检查文件夹属于哪个用户,会有两个用户:“apache”和“ec2-user”,如果它归“ec2-user”所有,然后按照URL..中提到的这些步骤操作。
  • 我的 var/www 目录属于 root:drwxrwsr-x 7 root www 4096 Nov 8 16:39 /var/www
  • 为了测试把它改成 ec2-user...sudo chown -R ec2-user:ec2-user /var/www/
  • 讨厌问一个无关紧要的问题,但既然你似乎已经达到了我什至无法达到的程度,那么你是如何在尝试发布时设法绕过 405文件到 ec2 服务器?
  • 不确定“405”指的是什么?

标签: php amazon-web-services amazon-ec2


【解决方案1】:
replace 
    $temp = $_FILES["file"]["tmp"];
    with 
    $temp = $_FILES["file"]["tmp_name"];

然后尝试。

您应该对您创建的目录具有读、写权限。否则上传的图片将不会放在您的目录中。

【讨论】:

  • 我实际上也这样做了。 (修改了原帖)。即使我可以回显 tmp 目录和文件,仍然没有上传。仍然没有将它移动到我的上传目录。
  • 您是否拥有上传目录的所有权限?读、写、执行?
  • 我拥有上传文件夹的 775 权限。这是我的问题吗?
  • 我通过执行以下操作将权限更改为该特定文件夹:sudo chmod -R 777 /var/www/html/bootstrap_form/uploads。该目录现在拥有完整权限,但仍无法将我的图像移至该目录。
【解决方案2】:

天哪!我得到的复制和粘贴。我多次设置了 $name 变量!它现在固定了。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2018-12-28
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多