PHP - Право собственности на файл / права доступа - Загруженный файл не может быть доступен / не найден после его загрузки - PullRequest
0 голосов
/ 25 мая 2018

Я использую этот 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/

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Проблема была решена, когда я связался со службой поддержки моего хостинг-провайдера.

enter image description here

Я попросил их объяснить причину, и они ответили:это:

enter image description here

Что бы это ни значило, я понятия не имею, однако моя проблема была решена, поэтому я публикую это, чтобы помочь кому-то еще, кто может иметьта же проблема.Надеюсь, это поможет.

0 голосов
/ 25 мая 2018

Я знаю, что вы уже проверили, что:

могут быть проблемы с правами доступа к файлам, но после предоставления загруженным файлам, включая их каталог) всех возможных разрешений, они все еще 404 не найдены

Но, возможно, проблема в владении файла, согласно этому ответу SO Что означает это сообщение об ошибке в журнале ошибок? :

Неверное разрешение или право собственности также могут вызывать эту ошибку.Я решил это, изменив владельца моего каталога приложений.Раньше он принадлежал пользователю root.

И здесь снова с той же ошибкой, что и в файле журнала:

https://alexantop.wordpress.com/2013/05/07/caught-race-condition-abuser/

с тем же решением:

Измените владельца файлов на «username».

Можете ли вы проверить владение папкой и попытаться изменить ее на www-dataили какой-то пользователь, который может быть доступен из Интернета.

Надеюсь, это поможет!

...