如何在blueimp jQuery文件上传中使用自己的文件进程处理程序?

时间:2013-04-10 16:23:13

标签: javascript jquery file-upload blueimp

我有自己的PHP图像文件上传进程处理程序。我只是在寻找一个jQuery解决方案来优化上传栏和多个文件选择。所以我花了几个小时才进入jQuery文件上传 - 没有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触摸文件?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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