Как удалить файл с JavaScript?

Не имел удачи с этими примерами:
Файл JavaScript удаляет
JavaScript метод FSO DeleteFile
Удаление файла

На файле нет никаких специальных полномочий.
Существует ли способ сделать это в JQuery?

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

Любая справка ценится.

Спасибо.

5
задан sepehr 15 March 2010 в 21:34
поделиться

7 ответов

С чистым JavaScript это невозможно. Однако использование AJAX-вызова сценария на стороне сервера, удаляющего файл, будет работать.

11
ответ дан 18 December 2019 в 07:08
поделиться

Javascript не может удалять файлы, это предотвращено, так как это может привести к ОГРОМНЫМ уязвимостям безопасности. Эти ссылки предназначены для элементов управления ActiveX, которые обрабатываются через JS. Используйте язык на стороне сервера.

3
ответ дан 18 December 2019 в 07:08
поделиться

Вы не можете удалить файл на удаленном сервере, используя только JavaScript, запущенный в браузере посетителя. Это необходимо сделать с помощью серверного скрипта.

2
ответ дан 18 December 2019 в 07:08
поделиться

Если вы делаете это в РЕСТОРАННОМ режиме, вы должны отправить HTTP-запрос DELETE .

Метод jQuery ajax утверждает, что вы можете использовать параметр метода для указания 'DELETE', но отмечает, что некоторые браузеры могут не поддерживать его.

Очевидно, вам понадобится веб-сервер, который будет принимать запрос DELETE и применять какую-то аутентификацию / авторизацию, чтобы случайный посетитель joe не мог удалить ваши файлы. Я считаю, что Apache mod_dav поможет вам начать здесь.

1
ответ дан 18 December 2019 в 07:08
поделиться

Вы не можете удалять файлы с помощью JavaScript, поскольку он выполняется локально. Поэтому он даже не трогает внешние файлы.

Вам нужно использовать язык на стороне сервера, который имеет доступ к редактированию файлов, например, PHP, RoR или ASP.

Однако вы можете использовать jQuery для вызова кода на стороне сервера через AJAX, например $.get или $.post, а затем код на стороне сервера удаляет их, и будет казаться, что JS удаляет файлы.

1
ответ дан 18 December 2019 в 07:08
поделиться

Javascript - это язык на стороне клиента. Таким образом, вы не можете удалить файл на сервере напрямую. Все приведенные вами примеры можно использовать только для удаления файлов на вашем локальном компьютере, но не на сервере.

Но вы можете вызвать некоторую функцию страницы сервера, которая удалит файл.

1
ответ дан 18 December 2019 в 07:08
поделиться

Вы не можете удалять файлы через HTTP (теоретически можете, но это не реализовано.)

Самый простой способ - установить крошечный скрипт на стороне сервера (например, на ASP или PHP) и вызывать его из JavaScript. Скрипт на стороне сервера должен иметь соответствующие разрешения на удаление, но в остальном проблем нет.

В PHP запуск выглядел бы так: (Не расширяя решение до полностью безопасного, поскольку вы не говорите, на какой платформе находитесь)

<? 

  // STILL INSECURE!!!!
  // Do not use in any public place without authentication.
  // Allows deletion of any file within /my/files
  // Usage: filename.php?file=filename 

  $basedir = "/my/files";
  $file_to_delete = $_REQUEST["file"];  

  $path = realpath($basedir."/".$file_to_delete);
  if (substr($path, 0, strlen($basedir)) != $basedir)
   die ("Access denied"); 

  unlink($path);

?>

Вы бы вызвали скрипт так:

http://yourserver/directory/delete_file.php?file=directory/filename
3
ответ дан 18 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

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