我使用传统(上传到服务器)版本的小文件现有FineUploader实现,该版本运行良好。但是,我还想允许来自应用程序的不同部分的Direct S3上传,这些部分处理大型附件,而不会重写现有的小文件代码。
是否有某种方法可以让Direct S3和Traditional上传相互兼作?这是一个单页面应用程序,所以我不能只根据我所在的页面加载一个或其他精细上传版本。
我尝试过只包含两个精细上传的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)
答案 0 :(得分:1)
很好找,@梅林达。
Fine Uploader存在于一个自定义命名空间中,因此它不会与其他潜在的全局变量冲突,这是qq
命名空间(历史上命名)。发生的事情是,当您将此命名空间包含在页面上的<script>
标记中时,每个自定义构建都会重新声明此命名空间以及所有成员对象。
我已经打开了an issue on our bug tracker,在更多技术细节中解释了这个问题,我们希望将修复程序优先安排到自定义页面,以便将来没有人会遇到此问题。