Я разработал приложение для загрузки изображений, которое использует Flash для загрузки изображения, изменения его размера и отправки байтового массива данных изображения в файл PHP, который выводит файл с измененным размером, используя следующий код -
$default_path = '/uploads/temp/';
$filename = $_GET["filename"];
$destination = $default_path . $filename;
if(file_put_contents($destination, $GLOBALS["HTTP_RAW_POST_DATA"])) {
echo "The file " . basename( $_FILES[ 'Filedata' ][ 'name' ] ) . " has been uploaded;";
} else {
echo "FILE UPLOAD FAILED";
}
Это прекрасно работало, когда я запускал его с выделенного веб-сервера Windows 2003, но теперь, когда я пытаюсь запустить его на экземпляре EC2, он перестал работать, и я получаю только сообщение «Ошибка загрузки файла». Я могу сказать из надстройки Firefox Firebug, что данные bytearray отправляются в экземпляр EC2, но я не вижу, что еще может вызвать проблему.
в EC2 Я запускаю образ CentOS с установленным PHP и Apache, я не знаю, с чего начать устранение неполадок этого! Скажите, пожалуйста, какие вопросы мне нужно искать здесь, какие-нибудь идеи?
Я проверил журналы ошибок и получил следующее сообщение об ошибке -
file_put_contents(/uploads/temp/abcdefg.JPG) [<a href='function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: No such file or directory
Это связано с pointint в неправильном каталоге? или разрешения как кто-то изложил ниже? Как дать PHP разрешение на запись в этот каталог и использовать ли абсолютный путь для ссылки на каталог, в который я хочу записать изображение?
ура