使用laravel中的ajax从按钮上单击文件夹中删除图像
问题描述:
I am trying to delete image from folder using ajax and in route using delete method .In controller trying to delete image using image name in laravel.
Route:
Route::delete('remove-social/{filename}', 'Webadmin\Socials@removesocial');
Controller:
public function removesocial($filename){
File::delete('public/assets/uploads/Social/' . $filename);
}
View :
<a href="javascript:removesocialimage()" style="color: white;text-decoration: none;" class="btn btn-red">
<i class="glyphicon glyphicon-trash "></i> Remove</a> </label>
<script>
function removesocialimage() {
if (j('#file_name').val() != '')
if (confirm('Are you sure want to remove social icon?')) {
j('#loading').css('display', 'block');
var form_data = new FormData();
form_data.append('_method', 'DELETE');
form_data.append('_token', '{{csrf_token()}}');
j.ajax({
url: "remove-social/" + j('#file_name').val(),
data: form_data,
type: 'POST',
contentType: false,
processData: false,
success: function (data) {
j('#preview_image').attr('src', '{{URL::to('/public/assets/Webadmin/images/attach-1.png')}}');
j('#file_name').val('');
j('#loading').css('display', 'none');
},
error: function (xhr, status, error) {
alert(error);
alert(xhr.responseText);
}
});
}
}
</script>
答
Include this in your views head:
<meta name="csrf-token" content="{{ csrf_token() }}">
And do this ajax setup before making network calls:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答
try to change route delete
to post
method
Route::post('remove-social/{filename}', 'Webadmin\Socials@removesocial');
if you want to used delete method then your ajax look like
add in head html tag
<meta name="csrf-token" content="{{ csrf_token() }}">
js code
j.ajax({
url: "remove-social/" + j('#file_name').val(),
data: form_data,
headers: {
X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: 'DELETE', //POST TO DELETE
contentType: false,
processData: false,
success: function (data) {
j('#preview_image').attr('src', '{{URL::to('/public/assets/Webadmin/images/attach-1.png')}}');
j('#file_name').val('');
j('#loading').css('display', 'none');
},
error: function (xhr, status, error) {
alert(error);
alert(xhr.responseText);
}
});