2015-12-07 6 views
2

В настоящее время я работаю над файловой загрузкой на PHP для экземпляра AWS EC2. В основном я просто хочу загрузить zip-файлы в подкаталог под названием/uploads /. Позвольте мне показать вам мой код до сих пор:PHP Fileupload для AWS EC2

<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. Но я все еще получаю ошибку от другой части. Поэтому я предполагаю, что move_uploaded_files возвращает false.

Когда дело доходит до запуска скрипта локально на XAMPP, все работает правильно. Я установил chmod на 777 в экземпляр EC2. Экземпляр EC2 работает Apache 2.4.7 и PHP 5.5.9

Я надеюсь, что кто-то может мне помочь.

Cheers, Хендрик

ответ

2

Я решил проблему, назначив www-data в качестве пользователя для /var/www/html каталога. До того, как он был установлен на «ubuntu», который по умолчанию назначается AWS.

В основном sudo chown -R www-data var/www/html работал для меня.