web/bundles/topxiaadmin/js/controller/uploader/cloud1-strategy.js

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

define(function(require, exports, module) {

  var Class = require('class');
  var store = require('store');

  var Cloud2Strategy = Class.extend({
    initialize: function(file, response) {

      file.gid = response.globalId;
      file.globalId = response.globalId;
      file.fileId = response.outerId;

      file.uploaderWidget.set('uploadToken', response.uploadToken);
      file.uploaderWidget.set('uploadUrl', response.uploadUrl);
      file.uploaderWidget.set('uploadProxyUrl', response.uploadProxyUrl);
      file.uploaderWidget.set('uploadMode', response.uploadMode);

      this.file = file;
      var self = file.uploaderWidget;
      var cloud2UploadStatus = this._initCloud2UploadStatus();

      cloud2UploadStatus.currentFileSize = file.size;
      cloud2UploadStatus.blockIndex = Math.ceil(cloud2UploadStatus.currentFileSize / cloud2UploadStatus.blockSize);
      cloud2UploadStatus.chunkIndex = Math.ceil(cloud2UploadStatus.currentFileSize / cloud2UploadStatus.chunkSize);
      if (cloud2UploadStatus.blockSize > cloud2UploadStatus.currentFileSize) {
        file.uploaderWidget.uploader.option('server', self.get('uploadUrl') + '/mkblk/' + cloud2UploadStatus.currentFileSize);
      } else {
        file.uploaderWidget.uploader.option('server', self.get('uploadUrl') + '/mkblk/' + cloud2UploadStatus.blockSize);
      }
      self.set('cloud2UploadStatus', cloud2UploadStatus);

      file.uploaderWidget.uploader.option('chunked', true);
      file.uploaderWidget.uploader.option('chunkSize', cloud2UploadStatus.chunkSize);
      file.uploaderWidget.uploader.option('sendAsBinary', true);

    },

    uploadBeforeSend: function(object, data, headers) {
      var self = this.file.uploaderWidget;
      $.each(data, function(i, n) {
        delete data[i];
      })
      headers.Authorization = "UpToken " + self.get('uploadToken');
    },

    _initCloud2UploadStatus: function() {
      return {
        ctxs: new Array(),
        currentFileSize: 0,
        blockSize: 4 * 1024 * 1024,
        chunkSize: 1024 * 1024,
        blockIndex: 0,
        currentBlockIndex: 1,
        chunkIndex: 0,
        currentChunkIndex: 0
      };
    },

    finishUpload: function(deferred) {
      var self = this.file.uploaderWidget;

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。