在10月CMS下使用自定义ajax的jQuery-File-Upload(Blueimp)

时间:2015-01-22 10:35:45

标签: components jquery-file-upload blueimp octobercms

尝试在10月CMS下创建一个组件,该组件应该允许前端多个文件上载。我尝试集成已经退出的形式的Blueimp jQuery-File-Upload插件,因为10月CMS使用集成的ajax框架,它允许数据提交到Component方法我会使用这个ajax方法而不是默认的Blueimp

所以正常的文件上载看起来像

$('#gallery').fileupload({
    // Uncomment the following to send cross-domain cookies:
    //xhrFields: {withCredentials: true},
    url: 'path/to/controller'

});

但我希望使用像

这样的东西
$('#gallery').fileupload({
    // Uncomment the following to send cross-domain cookies:
    //xhrFields: {withCredentials: true},
    add: function (e, data) {
        data.submit();
        $.request('onUploads', {

            success: function(data){
                console.log(data);

            }
        })
    }

});

1 个答案:

答案 0 :(得分:0)

您需要使用OctoberCMS所在的Request class from Laravel。基本上,您转到布局文件的代码部分并添加

function onUploads()
{
    // Get the file
    $file = Request::file('somefile');

    // Code to do something with it
    // enter code here
}

根据您要实现的目标,您可以编写适当的代码来上传它。例如,在my Social Login plugin中,我使用this class的方法从所选社交网络中获取照片,并在插件的社交模型和上传的文件之间创建关系,以便前端用户可以将照片输出为在他们的网络应用中显示照片。

另一个好方法是通过执行类似Request::file('somefile')->move(app_path() . '/themes/yourtheme/assets/uploads/');的操作直接将其上传到主题目录中,但是您需要添加代码来限制上传大小并修复文件名。如果您在实现某些目标方面需要帮助,请随时发表评论。 gl hf