Локальный доступ к файлу с JavaScript

Неустранимая ошибка: Невозможно переопределить класс [имя класса]

Неустранимая ошибка: невозможно обновить [имя функции]

Это означает, что вы либо используете одно и то же имя функции / класса дважды, и вам нужно переименовать один из них, или это потому, что вы использовали require или include, где вы должны использовать require_once или include_once.

Когда класс или функция объявляется в PHP, он неизменен и не может быть позже объявлен с новым значением.

Рассмотрим следующий код:

class.php

<?php

class MyClass
{
    public function doSomething()
    {
        // do stuff here
    }
}

index.php

<?php

function do_stuff()
{
   require 'class.php';
   $obj = new MyClass;
   $obj->doSomething();
}

do_stuff();
do_stuff();

Второй вызов do_stuff() приведет к получению ошибка выше. Изменяя require на require_once, мы можем быть уверены, что файл, содержащий определение MyClass, будет загружен только один раз, и ошибка будет устранена.

167
задан Peter Mortensen 12 August 2019 в 01:42
поделиться

3 ответа

Если пользователь выбирает файл через <input type="file">, Вы можете читать и процесс что файл с помощью файл API .

Чтение или запись произвольных файлов не позволяются дизайном. Это - нарушение песочницы. От Википедия-> JavaScript-> безопасность :

JavaScript и DOM предоставляют потенциал злонамеренным авторам для поставки сценариев для работы клиентского компьютера через сеть. Авторы браузера содержат, это рискует использовать два ограничения. Во-первых, сценарии работают в песочнице, в которой они могут только выполнить связанные с сетью действия, не задачи программирования общего назначения как [1 115] файлы .

создания

ОБНОВЛЕНИЕ 2016 года : Доступ к файловой системе непосредственно возможен через файловая система API , которая является только поддерживается Chrome, и Opera и может закончить тем, что не был реализован другими браузерами исключение Края ). Для получения дополнительной информации см. ответ Kevin .

83
ответ дан Community 23 November 2019 в 20:59
поделиться

ОБНОВЛЕНИЕ Эта функция удалена начиная с Firefox 17 (см. https://bugzilla.mozilla.org/show_bug.cgi? id=546848).

<час>

На Firefox (программист) можно сделать это из файла JavaScript:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");

и Вам (пользователь браузера) предложат предоставить доступ. (для Firefox просто необходимо сделать это один раз во время, браузер запускается)

, Если пользователь браузера - кто-то еще, они должны дать разрешение.

21
ответ дан Muntashir Akon 23 November 2019 в 20:59
поделиться

Если Вы развертываетесь в Windows, Windows Script Host предложения очень полезный API JScript к файловой системе и другим локальным ресурсам. Слияние сценариев WSH в локальное веб-приложение не может быть столь изящным, как Вы могли бы пожелать, как бы то ни было.

6
ответ дан Traphicone 23 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: