PHP Не разрешено загружать локальный ресурс

Я не уверен, почему получаю следующую ошибку:

Not allowed to load local resource: file:///D:/CargoDocsPDFs/0000024606//NAM3112358.pdf

Я использую функцию ниже, чтобы создать таблицу со ссылками на файлы PDF, которые пользователь может просто щелкнуть, чтобы загрузить:

<?php
function return401KDocs()
{
$dir = "D:/CargoDocsPDFs/0000024606/";
$ffs = scandir($dir);

echo "<table class='table table-bordered display nowrap'>";
echo "<thead>";
echo "<tr>
        <th style='width:300px;'>File Name</th>
        <th style='width:100px;'>Upload Date</th>
        <th style='width:25px;'>File Size</th>
        <th style='width:100px;'>Delete</th>
      </tr>";
echo "</thead>";
echo "<tbody>";
foreach($ffs as $ff)
{
    if ($ff != '.' && $ff != '..' && preg_match('#(pdf|doc|docx|xls|xlsx|PDF)$#',$ff))
    {                       
        $filesize = filesize($dir . '/' . $ff); 
        echo "<tr><td><a download href='$dir/$ff'>$ff</a></td><td>" . 
        date('m.d.y - g:i A', filemtime($dir . '/' . $ff)) . 
        "</td><td>" . round(($filesize / 1024), 2) . " kb</td>
        <td><a href='#' class='delete401KFile' data-file='".$ff."'>Delete</a></td></tr>";
    }
}
echo "</tbody>";
echo "</table>";
}    
?>

Использование вышеуказанной функции позволяет распечатать таблицу, а доступные файлы - это ссылки, по которым пользователь может щелкнуть, чтобы загрузить файл. Но я запрещен темой сообщения об ошибке.

Я нашел эту ссылку: jQuery Не разрешено загружать локальный ресурс

Но я не могу использовать эту ссылку, поскольку это касается использования вызова AJAX. Я пытаюсь выполнить эту задачу с помощью PHP.

Может дело в лишнем / в file:///D:/CargoDocsPDFs/0000024606//NAM3112358.pdf. Итак, $filesize = filesize($dir . '/' . $ff); должен быть $filesize = filesize($dir . $ff);

Hans Wassink 03.07.2018 16:10

@HansWassink - Не повезло, только получение той же ошибки.

John Beasley 03.07.2018 16:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
4 425
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я ответил, потому что не смог комментировать из-за баллов, поэтому, пожалуйста, не голосуйте против.

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

Вы никогда не сможете напрямую отображать файлы на клиенте, которые находятся в вашей папке хранения (диски C или D). Единственное, что на самом деле могут получить браузеры, это:

  1. То, что на самом деле находится под общей папкой
  2. Код, который вызывается через index.php (ваше приложение)

Итак, вам нужно будет хранить свои файлы где-нибудь в общей папке (на сервере).

Вы можете получить помощь по этой ссылке: https://webmasters.stackexchange.com/questions/53870/cannot-load-local-resource

Я никогда никого не голосую против. И если бы я это сделал, я бы, по крайней мере, объяснил, почему я проголосовал против них. Что касается вашего ответа, наши веб-файлы действительно находятся на диске C :, но файлы PDF необходимо загрузить и сохранить на диске D :. Вы говорите, что это невозможно или опрометчиво?

John Beasley 03.07.2018 16:18

Это не рекомендуется и не следует делать, потому что вы пытаетесь получить доступ к абсолютным путям, а также вы не можете ссылаться на диски сервера на самом деле, если только его Linux, и вы не монтируете диск на сервер (для этого тоже понадобится другой код в целом ), что в данном случае не совсем так. Также я не понимаю, почему вы хотите записывать и читать файлы с и на диски напрямую, создавать общую папку в веб-приложении (корневая папка вашего проекта, которая остается в htdocs, если используется xampp) и сохранять PDF-файлы там дается уникальный идентификатор для каждого и каждого файла, и тогда вам хорошо идти

Jaya Parwani 05.07.2018 12:27

Другие вопросы по теме