防止直接上传继续进行活动存储直接上传

时间:2019-05-09 18:24:52

标签: rails-activestorage

我想收听direct-upload:start或direct-upload:initialize事件,然后停止在那里进行的上载。换句话说,使用activestorage.js DirectUpload功能,我正在使用直接上传功能在表单提交时上传文件。我正在听这些事件,因此可以在允许上传之前先检查文件类型和大小。但是无论我做什么,我都无法阻止上传的发生。

   $('input#user_avatar').on('direct-upload:initialize', function (event) {
            event.preventDefault();
        });

我在direct-upload:initialize事件和direct-upload:start事件中都尝试过。我已经尝试过event.preventDefault(),event.stopPropagation(),event.stopImmediatePropagation()并抛出错误。无论如何,上传都会继续。 除非...这是表单提交,我应该取消...我稍后再试。

1 个答案:

答案 0 :(得分:0)

答案很简单……在任何活动的存储事件发生之前执行此操作。将onclick处理程序放在表单提交按钮上。您可以在上传之前获取文件大小。

$('#myfileinput')[0].files[0].size

如果大小大于您想要的大小,则只需返回false,表单将不会提交。