【发布时间】:2014-02-22 05:54:37
【问题描述】:
我有一个使用传统(上传到服务器)版本的小文件的现有 FineUploader 实现,效果很好。但是,我还希望允许从处理大附件的应用程序的不同部分直接上传 S3,而无需为小文件重写现有代码。
有没有办法让 Direct S3 和传统上传同时工作?这是一个单页应用程序,所以我不能只加载一个或其他精细上传器版本,具体取决于我所在的页面。
我尝试只包含两个精细上传 JS 文件,但它似乎破坏了我现有的代码。
客户端代码:
$uploadContainer = this.$('.uploader')
$uploadButton = this.$('.upload-button')
$uploadContainer.fineUploader(
request:
endpoint: @uploadUrl
inputName: @inputName
params:
authenticity_token: $('meta[name="csrf-token"]').attr('content')
button: $uploadButton
).on 'complete', (event, id, fileName, response) =>
@get('controller').receiveUpload(response)
【问题讨论】:
-
如果您尝试在同一页面上包含同一版本的多个构建,您会看到什么具体的错误消息?另外,您尝试加载哪些版本?这些自定义构建版本是通过基于 Web 的构建器实现的吗?
-
谢谢!刚刚又试了一次。 1. 从传统风格的基于 Web 的构建器下载自定义构建,并使用该版本测试我的传统设置 - 它仍然运行良好。 2. 下载了 4.3.1 的 S3 自定义构建(两次都没有更改默认复选框),并将该 JS 文件也包含在我的应用程序中(当然是在重命名之后)。然后,当我尝试单击传统上传表单上的上传按钮时,出现此错误:dropbox.com/s/s8oeuahd49xe8q4/… 实际上来自 S3 JS 文件,而不是传统文件。
-
这很可能是由您的集成代码引起的。加载两个版本后,请显示您的集成客户端代码。
-
将其添加到原始问题中。没什么特别的,调用仍然是fineUploader() 而不是fineUploaderS3()。
-
而且很清楚 - 如果我只删除 FineUploader S3 JS 文件,此代码就可以正常工作。