在laravel中删除ajax post请求中的文件

时间:2014-06-08 16:49:59

标签: jquery ajax laravel laravel-4

尝试通过邮件编辑表单上的ajax post请求删除上传的图像。但我面临一些问题,当我按下删除按钮 - 它成功发送带图像路径的ajax post请求,然后在我的控制器中我试图删除该文件,但它不删除它。

这是我的js:

(function($) {
    $('.del-image').click(function() {
        var thisUrl = $('.col-md-10 img').attr('src');

        $.ajax({
            method: 'post',
            url: '/del-image',
            data: {imgUrl: thisUrl, id: pageId},
            error: function(e) {
                alert('Error' + e);
            }
        });
    });
})(jQuery);

然后在控制器中我收到了ajax post请求:

public function deleteImage() {
    if (Request::ajax()) {
        $path = Input::get('imgUrl');
        File::delete($path);
        return 'ajax request';
    }

    return App::abort(404);
}

在routes.php中我有:

Route::any('del-image', array('uses' => 'PageController@deleteImage'));

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

试试这个(要获取path的文件uploads/filename.ext):

var  = $('.col-md-10 img').attr('src');
var thisUrlArray = thisUrl.split('/');
thisUrl = 'uploads/' + thisUrlArray.pop();

然后在thisUrl来电的imgUrl参数中使用data作为AJAX