Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax请求删除文件_Javascript_Php_Ajax_File - Fatal编程技术网

Javascript 使用ajax请求删除文件

Javascript 使用ajax请求删除文件,javascript,php,ajax,file,Javascript,Php,Ajax,File,我正在尝试使用ajax请求删除一个文件: javascript: function deleteFile(file_path) { var r = confirm("Sure?") if(r == true) { $.ajax({ url: 'delete_file.php', data: {'file' : file_path }, method: 'GET', succes

我正在尝试使用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!');

          }
        });
    }
}
删除_file.php:

unlink($_GET['file']);

成功时返回true,但不会删除文件。

在AJAX中检查响应,最好使用JSON数据检查响应:

// 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);

确保您为函数提供了完整的路径和文件名

尝试此操作您需要检查文件,授予权限,然后删除它

$filename = 'full absolute file path';
if(file_exists($filename)) {
    @chmod($filename, 0777);
    @unlink($filename);
    return true;
}
因为可能存在两个问题:文件路径不正确或文件没有权限


使用上述代码,这两个都将被检查。

您的php/server实例在您试图删除的文件夹中是否具有读/写/修改权限?请在取消链接之前检查链接路径。可能您的链接是相对的,而不是绝对的。您可能应该进入调试模式,检查
响应
变量的内容,或者将web浏览器指向路径(
delete_file.php?file..
)。很可能是PHP给了你错误,比如权限被拒绝,但是仍然返回一个
200OK
状态码。我会检查并返回一个review,这里有一个HTTP动词叫做
DELETE
。如果你