要在Parse.com中使用plupload,如何访问文件控制对象或base64字符串?

时间:2013-08-30 17:25:44

标签: javascript parse-platform plupload

我们想要中断plupload uploader,而是从所选文件中获取文件控制对象或base64字符串,以便我们将它们上传到Parse.com。 (我们实际上只是使用pluploader进行检查和UI灵活性。)

我们尝试在preInit事件中访问pluploader的“UploadFile:function(up,file)”中的文件对象 - 但是虽然file.id和file.name存在,但file似乎不是文件控制对象,因为它使用Parse.com抛出对象“类型”错误。

另一个stackoverflow [问题](Can Uploadify or Plupload upload selected files at the same time as the rest of the form data?)表明它是可能的,因为plupload 的核心是客户端javascript - 但目前还不清楚如何。

想法?

1 个答案:

答案 0 :(得分:1)

在当前版本的Plupload(1.5.7)中,每个运行时(html5,html4,flash,...)都拥有自己的逻辑,用于访问文件数据或将其上载委托给第三方。高级上传者不了解数据。

只需考虑HTML5 uploader,就可以看到,当文件添加到文件输入时:

  • 为此文件生成guid ID
  • 将二进制文件对象添加到私有对象,映射到guid id

也许你可以:

  • 订阅fileInput onchange事件以掌握二进制文件对象并将它们存储在您自己的数组中。

类似的东西:

uploader.init();
var fileArray = []
var inputFile = document.getElementById(uploader.id + '_html5');
inputFile.onchange = function oninputFileChanged() {fileArray.push(this.files);};
  • 订阅FilesAdded事件,并通过将返回的文件名和文件大小与您自己的数组中存储的文件大小相匹配来检索分配给二进制文件对象的guid
  • 取消绑定默认的UploadFile处理程序

    uploader.unbind( 'UploadFile');

  • 使用fileArray实现自己的UploadFile处理程序,based on HTML5 handler implementation (~300 lines...)

请注意,这仅涵盖HTML5运行时。似乎有很多工作要做恕我直言。

作为旁注,在GitHub上的plupload的主分支the File class features getSource() and getNative() functions。我想它可以作为plupload download page上的plupload 2 beta链接。值得一试,我会说。

希望这会有所帮助