Я делаю простую загрузку изображений с помощью PHP, что я делал 100 раз раньше.На этот раз это не работает.У меня есть каталоги / tmp и uploads, настроенные на chmod 777, я выбрал каталоги для apache, я проверил, что массив $ _FILES заполнен:
<input type="file" name="uploadimage" id="uploadimage" />
[uploadimage] => Array(
[name] => dilbert.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpkuJyyP
[error] => 0
[size] => 731602
)
Вот мой код:
$response = array();
$response['path'] = '';
$response['success'] = false;
$response['error'] = '';
$targetDir = "../../../images/uploads/";
$filepath = $targetDir . $_FILES['uploadimage']['name'];
// here just for testing since it won't return below
$response['path'] = $filepath;
if(is_array($_FILES)) {
if(is_uploaded_file($_FILES['uploadimage']['tmp_name'])) {
if(move_uploaded_file($_FILES['uploadimage']['tmp_name'], $filepath)) {
$response['success'] = true;
$response['path'] = $targetDir . $_FILES['uploadimage']['name'];
} else {
$response['error'] = 'File could not be moved';
}
} else {
$response['error'] = 'File not found';
}
} else {
$response['error'] = 'Files array not found';
}
Самая внутренняя ошибка: «Файл не может быть перемещен». Путь, который я получаю в ответ на мой вызов AJAX, правильный, он должен быть domain.com/images/uploads/filename.JPG, и это ...
Я вручную загрузил изображение в каталог загрузки, domain.com/images/uploads/1.jpg, а затем снова загрузил это изображение, он загрузил, и он разрешается в пользовательском интерфейсепотому что изображение уже было там, поэтому я знаю, что путь, пройденный назад, является точным.
Что еще можно попробовать?Изображения не заканчиваются в / tmp
Ошибки Apache
PHP Warning: move_uploaded_file(../../../images/uploads/dilbert.jpg):
failed to open stream: No such file or directory in
/var/www/webapp/application/controllers/DocumentController.php
on line 75, referer: http://192.168.1.3/document/
PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpm4Ivrx' to
'../../../images/uploads/dilbert.jpg' in
/var/www/webapp/application/controllers/DocumentController.php
on line 75, referer: http://192.168.1.3/document/
File does not exist:
/var/www/webapp/public/images/uploads/dilbert.jpg, referer:
http://192.168.1.3/document/