【问题标题】:Delete a file with ajax request使用 ajax 请求删除文件
【发布时间】:2015-04-03 17:30:25
【问题描述】:

我正在尝试使用 ajax 请求删除文件:

javascript:

function deleteFile(file_path)
{
    var r = confirm("Sure?")
    if(r == true)
    {
        $.ajax({
          url: 'delete_file.php',
          data: {'file' : file_path },
          method: 'GET',
          success: function (response) {
             alert('Deleted!');

          },
          error: function () {
             alert('Not Deleted!');

          }
        });
    }
}

删除文件.php:

unlink($_GET['file']);

成功返回true,但文件没有被删除。

【问题讨论】:

  • 您的 php/server 实例在您要删除的文件夹中是否具有读/写/修改权限?
  • 在取消链接之前检查您的链接路径。可能是你的链接是相对的而不是绝对的
  • 您可能应该进入调试模式并检查response 变量的内容 - 或者只需将您的网络浏览器指向路径 (delete_file.php?file..)。可能 PHP 给你错误,例如权限被拒绝,但仍然返回 200 OK 状态码。
  • 我会检查并返回评论
  • 有一个 HTTP 动词叫做 DELETE。如果您 GET 上使用它。

标签: javascript php ajax file


【解决方案1】:

在 AJAX 中检查响应,最好是使用 JSON DATA 来检查响应:

// Default AJAX request type is GET so no need to define  
$.ajax({
      url: 'delete_file.php',
      data: {'file' : file_path },
      dataType: 'json', 
      success: function (response) {
         if( response.status === true ) {
             alert('File Deleted!');
         }
         else alert('Something Went Wrong!');
      }
    });

在 PHP 中这样做:

// First Check if file exists
$response = array('status'=>false);

if( file_exists('FILE_PATH/FILENAME') ) {
    unlink('FILE_PATH/FILENAME');
    $response['status'] = true;
}

// Send JSON Data to AJAX Request
echo json_encode($response);

确保您将带有文件名的完整路径提供给 unlink() 函数

【讨论】:

    【解决方案2】:

    试试这个你需要检查文件,授予权限,然后删除它

    $filename = 'full absolute file path';
    if(file_exists($filename)) {
        @chmod($filename, 0777);
        @unlink($filename);
        return true;
    }
    

    因为文件路径不正确或文件没有权限可能有两个问题。

    上面的代码都将被检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      相关资源
      最近更新 更多