Fine-uploader - 在上传每个文件之前向服务器添加一个asyc请求?

时间:2016-08-11 19:56:38

标签: javascript fine-uploader

我正在使用Fine-uploader(传统版本)试图让用户将文件上传到我们自己的服务器。我现在面临的挑战是,我应该在正常上传过程之前先从服务器获取令牌。令牌将与每个上传请求/块一起发送。此令牌对于每个文件都是唯一的,因此这个"请求令牌"步骤只能在用户选择文件后启动。

我正考虑将某些东西放入" onSubmit"打回来。但是这个"请求令牌"是一个asyc调用,这意味着服务器的响应不会立即回来。我不知道该怎么做,或者这是否是这样做的好方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

onSubmit回调接受“thenable”返回值。换句话说,您可以返回Promise,并且Fine Uploader将在继续执行该文件的下一步之前等待,直到返回的promise被解析或拒绝。例如:

var uploader = new qq.FineUploader({
   callbacks: {
      onSubmit: function(id, name) {
         return new Promise(function(resolve, reject) {
            // Send request to server, resolve() on success
            // ... reject() on failure.
            // Call this.setParams(tokenData, id)
            // ...to send the token w/ the upload request.
         })
      }
   }
})