13

有没有办法使用javascript从文件夹中删除文件..?这是我的功能

function deleteImage(file_name)
    {
        var r = confirm("Are you sure you want to delete this Image?")
        if(r == true)
        {
            var file_path = <?php echo dirname(__FILE__) . '/uploads/'?>+file_name;
            file_path.remove();
        }
    }
4

6 回答 6

19

没有任何服务器端脚本,您无法删除任何内容..

您实际上可以使用 ajax 并调用服务器端文件来执行此操作,例如

制作一个文件 delete.php

<?php 
   unlink($_GET['file']);
?>

并在 javascript

function deleteImage(file_name)
{
    var r = confirm("Are you sure you want to delete this Image?")
    if(r == true)
    {
        $.ajax({
          url: 'delete.php',
          data: {'file' : "<?php echo dirname(__FILE__) . '/uploads/'?>" + file_name },
          success: function (response) {
             // do something
          },
          error: function () {
             // do something
          }
        });
    }
}
于 2013-11-01T06:12:03.080 回答
3

出于安全原因,您不能使用 javascript 删除文件。但是,您可以使用 Ajax 结合 PHP、ASP.NET 等服务器端语言来执行此操作。下面是您可以在代码中添加的示例 ajax 调用。

$(function(){
$('a.delete').click(function(){
  $.ajax({
   url:'delete.php',
   data:'id/name here',
   method:'GET',
   success:function(response){
    if (response === 'deleted')
    {
       alert('Deleted !!');
    }
   }
  });
});
});
于 2013-11-01T06:10:42.403 回答
2

使用 NodeJS,您也可以使用 filestream 来取消链接文件。

它看起来像这样:

var fs = require('fs');
fs.unlink('path_to_your_file+extension', function (err) {
    //Do whatever else you need to do here
});

我相当确定(虽然我没有尝试过)你可以用普通的 javascript 导入 fs node_module 但你必须仔细检查。

如果您无法导入模块,您可以随时在您的机器上下载 NPM,并且

npm i fs

在某个目录(命令行)中,从该模块获取 javascript 类以在您的标记页面上使用。

于 2018-04-17T01:13:09.303 回答
0

你不能这样做。实际上JavaScript is sandboxed,它不允许进行此类操作。

要删除文件,您需要服务器端脚本来实现此目的。这取决于您使用哪种服务器端语言来处理。

于 2013-11-01T06:06:43.110 回答
0

Javascript 是一种客户端脚本语言。如果要从服务器中删除文件,请改用 php。

于 2013-11-01T06:07:39.213 回答
0

你不能通过使用javascript来做到这一点。但是如果文件驻留在服务器中,那么您可以使用 php 来执行此操作。您可以在 php.ini 中使用 unlink。

unlink($path_to_file);
于 2013-11-01T06:07:52.610 回答