我正在尝试删除带有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!');
}
});
}
}
delete_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);
确保将文件名的完整路径提供给unlink()函数
试试这个,你需要检查文件,给予权限,然后删除它
$filename = 'full absolute file path';
if(file_exists($filename)) {
@chmod($filename, 0777);
@unlink($filename);
return true;
}
由于可能存在两个问题,文件路径不正确或文件没有权限。
使用上面的代码,两者都将被检查。