Bläddra i källkod

multipart: Allow overriding download URL logic.

Renée Kooi 7 år sedan
förälder
incheckning
b29159aecc
3 ändrade filer med 11 tillägg och 8 borttagningar
  1. 1 1
      src/core/Core.js
  2. 8 5
      src/plugins/Multipart.js
  3. 2 2
      src/plugins/Tus10.js

+ 1 - 1
src/core/Core.js

@@ -414,7 +414,7 @@ class Uppy {
       throttledCalculateProgress(data)
     })
 
-    this.on('core:upload-success', (fileID, uploadResp, uploadURL) => {
+    this.on('core:upload-success', (fileID, uploadURL) => {
       const updatedFiles = Object.assign({}, this.getState().files)
       const updatedFile = Object.assign({}, updatedFiles[fileID], {
         progress: Object.assign({}, updatedFiles[fileID].progress, {

+ 8 - 5
src/plugins/Multipart.js

@@ -14,7 +14,11 @@ module.exports = class Multipart extends Plugin {
       fieldName: 'files[]',
       responseUrlFieldName: 'url',
       bundle: true,
-      headers: {}
+      headers: {},
+      getUploadUrl (xhr) {
+        const resp = JSON.parse(xhr.response)
+        return resp[this.responseUrlFieldName]
+      }
     }
 
     // Merge default options with the ones set by user
@@ -60,10 +64,9 @@ module.exports = class Multipart extends Plugin {
 
       xhr.addEventListener('load', (ev) => {
         if (ev.target.status >= 200 && ev.target.status < 300) {
-          const resp = JSON.parse(xhr.response)
-          const uploadURL = resp[opts.responseUrlFieldName]
+          const uploadURL = opts.getUploadUrl(xhr)
 
-          this.core.emitter.emit('core:upload-success', file.id, resp, uploadURL)
+          this.core.emitter.emit('core:upload-success', file.id, uploadURL)
 
           if (uploadURL) {
             this.core.log(`Download ${file.name} from ${file.uploadURL}`)
@@ -144,7 +147,7 @@ module.exports = class Multipart extends Plugin {
           socket.on('progress', (progressData) => Utils.emitSocketProgress(this, progressData, file))
 
           socket.on('success', (data) => {
-            this.core.emitter.emit('core:upload-success', file.id, data)
+            this.core.emitter.emit('core:upload-success', file.id, data.url)
             socket.close()
             return resolve()
           })

+ 2 - 2
src/plugins/Tus10.js

@@ -140,7 +140,7 @@ module.exports = class Tus10 extends Plugin {
       }
 
       optsTus.onSuccess = () => {
-        this.core.emitter.emit('core:upload-success', file.id, upload, upload.url)
+        this.core.emitter.emit('core:upload-success', file.id, upload.url)
 
         if (upload.url) {
           this.core.log('Download ' + upload.file.name + ' from ' + upload.url)
@@ -240,7 +240,7 @@ module.exports = class Tus10 extends Plugin {
           socket.on('progress', (progressData) => Utils.emitSocketProgress(this, progressData, file))
 
           socket.on('success', (data) => {
-            this.core.emitter.emit('core:upload-success', file.id, data, data.url)
+            this.core.emitter.emit('core:upload-success', file.id, data.url)
             socket.close()
             return resolve()
           })