Не имел удачи с этими примерами:
Файл JavaScript удаляет
JavaScript метод FSO DeleteFile
Удаление файла
На файле нет никаких специальных полномочий.
Существует ли способ сделать это в JQuery?
Требование - определенный файл должен быть удален из веб-каталога, когда другая страница загружается. Нет никакой проблемы безопасности, как это находится в закрытой сети.
Любая справка ценится.
Спасибо.
С чистым JavaScript это невозможно. Однако использование AJAX-вызова сценария на стороне сервера, удаляющего файл, будет работать.
Javascript не может удалять файлы, это предотвращено, так как это может привести к ОГРОМНЫМ уязвимостям безопасности. Эти ссылки предназначены для элементов управления ActiveX, которые обрабатываются через JS. Используйте язык на стороне сервера.
Вы не можете удалить файл на удаленном сервере, используя только JavaScript, запущенный в браузере посетителя. Это необходимо сделать с помощью серверного скрипта.
Если вы делаете это в РЕСТОРАННОМ режиме, вы должны отправить HTTP-запрос DELETE .
Метод jQuery ajax утверждает, что вы можете использовать параметр метода для указания 'DELETE', но отмечает, что некоторые браузеры могут не поддерживать его.
Очевидно, вам понадобится веб-сервер, который будет принимать запрос DELETE и применять какую-то аутентификацию / авторизацию, чтобы случайный посетитель joe не мог удалить ваши файлы. Я считаю, что Apache mod_dav поможет вам начать здесь.
Вы не можете удалять файлы с помощью JavaScript, поскольку он выполняется локально. Поэтому он даже не трогает внешние файлы.
Вам нужно использовать язык на стороне сервера, который имеет доступ к редактированию файлов, например, PHP, RoR или ASP.
Однако вы можете использовать jQuery для вызова кода на стороне сервера через AJAX, например $.get или $.post, а затем код на стороне сервера удаляет их, и будет казаться, что JS удаляет файлы.
Javascript - это язык на стороне клиента. Таким образом, вы не можете удалить файл на сервере напрямую. Все приведенные вами примеры можно использовать только для удаления файлов на вашем локальном компьютере, но не на сервере.
Но вы можете вызвать некоторую функцию страницы сервера, которая удалит файл.
Вы не можете удалять файлы через 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