Я использую этот Simple-Ajax-Uploader плагин для загрузки файлов, затем я использовал Эта PHP-библиотека для обработки файлов, для таких вещей, как генерация случайных файловимена, изменение размера и указание каталога для сохранения файлов и т. д.
Вот код:
<?php
require('../classes/class.upload.php');
require('../classes/User.php');
//Process a file uploaded via XMLHttpRequest
$handle = new upload($_FILES['uploadfile']['tmp_name']);
if ($handle->uploaded) {
$handle->file_new_name_body = User::generateRandomString();
$handle->image_resize = true;
$handle->image_x = 360;
$handle->image_ratio_y = true;
$handle->process('temp-uploads');
if ($handle->processed) {
echo json_encode(array('success' => true, 'newfilename' => $handle->file_dst_name));
$handle->clean();
} else {
exit(json_encode(array('success' => false, 'msg' => $handle->error)));
}
}
Хорошо, файл будет успешно загружен, но каким-то образом он станет недоступным через любую веб-страницу,это также недоступно, если я пытаюсь получить доступ к «site-name.com/directory-name/filename.jpg» в браузере.Он показывает 404. Не найдено.
Я также думал, что это могут быть проблемы с правами доступа к файлам, но после предоставления загруженным файлам, включая их каталог) всех возможных разрешений, они все еще остаются 404 Не найдены.Прямо сейчас файлы, загруженные ajax, видны в файловом менеджере cPanel, но недоступны в URL.
Наконец, из любопытства, я загрузил другой файл непосредственно на сервер через cPanel, и этот файл был доступен, но остальныедо сих пор таинственно остаются недоступными с 404 Not Found.Я также переименовал один из недоступных файлов в test.jpg, но он остается недоступным.Я пытался найти похожие проблемы здесь, но не могу найти.
Пожалуйста, что здесь не так?
Редактировать:
У меня естьобнаружил, что это проблема с правами владения файлами, каталог, в который загружаются файлы, и файлы в нем имеют разные имена владельцев 1128 и 99 соответственно.Я изменил название вопроса, включив в него «Право владения / разрешения файла» .
Также я неоднократно обнаруживал следующее сообщение в журналах ошибок для каждого загруженного файла:
[Sat May 26 09:28:05.584102 2018] [core:error] [pid 9320:tid 140646036481792] [client 209.126.90.118:59372] Caught race condition abuser. attacker: 1128, victim: 99 open file owner: 99, open file: /home/royalsee/public_html/php/MichenoCoop/dashboard/temp-uploads/32_3.JPG, referer: http://michenocoop.com/dashboard/temp-uploads/