我目前正致力于基于PHP的文件上传到AWS EC2实例。基本上我只想将zip文件上传到名为/ uploads /的子目录。到目前为止,让我告诉你我的代码:
<form enctype="multipart/form-data" action="index.php" method="POST">
<input id="file-0a" class="file" name="zipfile" type="file" data-show-preview="false">
</form>
所以任何上传的文件都应该在$ _FILES ['zipfile']
中说到PHP,我的代码如下:
<?php
if(isset($_FILES[zipfile])){
error_reporting(E_ALL);
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['zipfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['zipfile']['tmp_name'], $uploadfile)) {
echo "Success\n";
} else {
echo "Error!\n";
}
echo 'Debugging:';
print_r($_FILES);
print "</pre>";
}
?>
Print_r显示所有必要信息,错误级别为0,我得到tmp_name,如/ tmp / phpy3lQBV。但我仍然从else部分得到错误。所以我假设move_uploaded_files返回false。
在XAMPP上本地运行脚本时,一切正常。我在EC2实例上将chmod设置为777。 EC2实例正在运行Apache 2.4.7和PHP 5.5.9
我希望有人可以帮助我。
干杯, 亨德里克
答案 0 :(得分:2)
我通过将www-data
指定为/var/www/html
目录的用户来解决了这个问题。在将其设置为“ubuntu&#39;”之前,这是由AWS默认分配的。
基本上sudo chown -R www-data var/www/html
为我工作。