1

如何使用 Google Closure 处理多个文件上传?

  • 是否可以将YUI3 UploaderGoogle Closure Library一起使用?是否有可用于 YUI3 的外部文件?是否可以将 YUI3 Uploader 放在 iframe 中并访问 iframe 父框架中的上传处理程序返回的变量?使用 iframe,也许我可以为 YUI 上传器创建一个隔离的环境。

  • 有没有人有使用SWFUploadPlupload或其他使用 Google Closure Library 的经验?

  • 作为替代方案,我可以使用Google Picker将文件上传到 Google Drive,然后使用 Google Drive SDK 将这些文件下载到我的网络主机。缺点是我无法更改 Google Picker 的样式以匹配我网站的样式。

4

2 回答 2

1

编写一个使用 SWFUpload 进行多文件上传的 Google Closure Library 组件实际上相当容易。我使用 Closure Compiler 创建了一个用于高级编译的 externs 文件:

var SWFUpload = {
    "instances": function () {},
    "movieCount": {},
    "version": {},
    "QUEUE_ERROR": {
        "QUEUE_LIMIT_EXCEEDED": {},
        "FILE_EXCEEDS_SIZE_LIMIT": {},
        "ZERO_BYTE_FILE": {},
        "INVALID_FILETYPE": {}
    },
    "UPLOAD_ERROR": {
        "HTTP_ERROR": {},
        "MISSING_UPLOAD_URL": {},
        "IO_ERROR": {},
        "SECURITY_ERROR": {},
        "UPLOAD_LIMIT_EXCEEDED": {},
        "UPLOAD_FAILED": {},
        "SPECIFIED_FILE_ID_NOT_FOUND": {},
        "FILE_VALIDATION_FAILED": {},
        "FILE_CANCELLED": {},
        "UPLOAD_STOPPED": {}
    },
    "FILE_STATUS": {
        "QUEUED": {},
        "IN_PROGRESS": {},
        "ERROR": {},
        "COMPLETE": {},
        "CANCELLED": {}
    },
    "BUTTON_ACTION": {
        "SELECT_FILE": {},
        "SELECT_FILES": {},
        "START_UPLOAD": {},
        "JAVASCRIPT": {}
    },
    "CURSOR": {
        "ARROW": {},
        "HAND": {}
    },
    "WINDOW_MODE": {
        "WINDOW": {},
        "TRANSPARENT": {},
        "OPAQUE": {}
    },
    "completeURL": function () {},
    "Console": {
        "writeLine": function () {}
    }
},
FileProgress = {}
于 2012-11-16T11:54:58.893 回答
0

你看过goog.net.iframeIoGoogle Closure Library 中的类吗?您可以在单个表单中呈现多个文件输入元素,然后使用此组件通过隐藏的 IFrame 将这些表单中的每一个发布到 Web 服务器。

以下是关于如何实现它的 Google 文档的链接:

http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/net/iframeio.js#48

于 2012-11-15T17:22:28.507 回答