【问题标题】:how to use own file process handler on blueimp jQuery File Upload?如何在 blueimp jQuery File Upload 上使用自己的文件处理处理程序?
【发布时间】:2013-04-17 18:16:11
【问题描述】:

我有自己的 PHP 图像文件上传过程处理程序。我只是在寻找一个 jQuery 解决方案来优化上传栏和多个文件选择。所以我花了几个小时进入 jQuery File Upload - 没有 ui,基本设置。我做了我需要的所有 js 更改,并尝试将其实现到我现有的文件上传表单。

但现在我意识到,/server/php/UploadHandler.php 对 jQuery 脚本来说是必不可少的。如果没有这个 php 文件,我就无法进入“完成”事件。

我不想使用文件处理 UploadHandler 类,因为我有很多自己的步骤,例如水印,需要对上传的图像文件进行处理。我喜欢做这样的事情:

done: function (e, data) {
    // alert('done!');
    document.upload.submit(); // existing upload form including jQueryFileUpload
},

如何摆脱这个 PHP 类中的文件处理?我只希望“jQuery 文件上传”能够提供一个不错的多部分文件选择、一个 jQuery 图像预览和一个很棒的处理栏。

有没有办法阻止 PHP 触摸文件?

【问题讨论】:

    标签: javascript jquery file-upload blueimp


    【解决方案1】:

    我遇到了类似的问题。我们希望在 HTML 表单中上传文件以及其他一些数据,而不是简单的上传。为此,提供的 PHP 类是不够的。

    您可以轻松编写自己的 PHP 上传处理程序,使用提供的作为参考。或者使用其他一些后端技术。重要的是使用后端上传处理程序的 url 作为表单操作。

    如果您不想立即提交,则必须在 JS 中覆盖文件上传小部件的“添加”选项。 “完成”仅对评估结果有用。 我们将添加处理程序中的数据保存在一个闭包变量中,并在用户想要提交时使用它来提交。这样,其他表单数据将与上传请求一起自动发送。像这样:

    (function()
    {
      var uploadData;
      $("#uploadInput").fileupload(
      {
        add : function(e, data)
        {
          uploadData = data;
        },
       ... other options ...
      });
      $("#submit").submit(function()
      {
        if (uploadData != null)
          uploadData.submit();
       }
    })();
    

    不确定这是否适用于多次上传,但我希望这会有所帮助。

    【讨论】:

    • 如何将 JS uploadData 发送到 PHP?
    • uploadData.submit() - 你必须在回调中使用 fileupload 插件提供的数据对象;标准的添加回调是:function(e, data) { data.submit() }
    • 感谢您的回答。我不知道它是否有效,因为我们切换到精细上传器。如果有人确认您的解决方案,我会在回答时标记它。
    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2013-05-19
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多