Meteor-Community-Packages/Meteor-CollectionFS

Multiple file upload fails with error on client

Opened this issue · 0 comments

This is my collection definition:

Image = new FS.Collection("images", {
    /* the file director: .meteor/local/uploads */
    stores:[new FS.Store.FileSystem("images",{path:Meteor.settings.uploadRoot+"/uploads"})],
    filter: {
        allow: {
            contentTypes: ['image/*', 'application/pdf'] //allow only images and pdf in this FS.Collection
        }
    }
});

if(Meteor.isServer){
    Image.allow({
        'insert': function () {
            // add custom authentication code here
            return true;
        },
        'update': function () {
            return true;
        },
        'download':function(){
            return true;
        }
    });
}

My change method:

    'change #input-file': function(event, template) {
        uploadedImageFiles = [];
        FS.Utility.eachFile(event, function(file) {
            console.log("inserting image file");
            console.log(file);
            Image.insert(file, function (err, fileObj) {
                 let id = fileObj._id;
                // console.log("waiting for image with id = " + id);
                 let cursor = Image.find({_id: id});
                // console.log("image obj");
                //
                //  let image = Image.findOne({_id: id});
                // console.log("Image");
                // console.log(JSON.stringify(image));

                let liveQuery = cursor.observe({
                    changed (newImage, oldImage){
                        if (newImage.url() !== null) {
                            liveQuery.stop();

                            console.log('Upload finished for ' + fileObj.name());
                            let imagePath = '/uploads/images-' + fileObj._id + '-' + fileObj.name();
                            let entry = {id: fileObj._id, name: fileObj.name(), path: imagePath};
                            uploadedImageFiles.push(entry);
                        }
                    }
                });
            });
        });
    },

During upload, I get this error in the browser console. Some files get uploaded, some don't.

Error: "Queue" network [undefined], Error
    at cfs_upload-http.js:382
    at cfs_upload-http.js:108
    at underscore.js:794
    at XMLHttpRequest.xhr.onreadystatechange (cfs_upload-http.js:167)
PowerQueue.runTaskDone @ cfs_power-queue.js:525
taskCallbackDone @ cfs_power-queue.js:607
(anonymous) @ cfs_upload-http.js:382
(anonymous) @ cfs_upload-http.js:108
(anonymous) @ underscore.js:794
xhr.onreadystatechange @ cfs_upload-http.js:167
XMLHttpRequest.send (async)
httpCall @ cfs_upload-http.js:237
gotBinaryCallback @ cfs_upload-http.js:373
reader.onload @ cfs_data-man.js:336
FileReader (async)
read @ cfs_data-man.js:341
(anonymous) @ cfs_data-man.js:363
dataManGetBlob @ cfs_data-man.js:289
dataManGetBinary @ cfs_data-man.js:344
_taskHandler @ cfs_upload-http.js:366
PowerQueue.runTask @ cfs_power-queue.js:606
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
(anonymous) @ cfs_power-queue.js:575
withValue @ meteor.js:1077
(anonymous) @ meteor.js:464
(anonymous) @ meteor.js:1105
setTimeout (async)
setTimeout @ meteor.js:487
PowerQueue.runTaskDone @ cfs_power-queue.js:574
taskCallbackDone @ cfs_power-queue.js:607
(anonymous) @ cfs_upload-http.js:384
(anonymous) @ cfs_upload-http.js:108
(anonymous) @ underscore.js:794
xhr.onreadystatechange @ cfs_upload-http.js:231
XMLHttpRequest.send (async)
httpCall @ cfs_upload-http.js:237
gotBinaryCallback @ cfs_upload-http.js:373
reader.onload @ cfs_data-man.js:336
FileReader (async)
read @ cfs_data-man.js:341
(anonymous) @ cfs_data-man.js:363
dataManGetBlob @ cfs_data-man.js:289
dataManGetBinary @ cfs_data-man.js:344
_taskHandler @ cfs_upload-http.js:366
PowerQueue.runTask @ cfs_power-queue.js:606
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
PowerQueue.run @ cfs_power-queue.js:750
PowerQueue.queueTaskHandler @ cfs_power-queue.js:638
PowerQueue.runTask @ cfs_power-queue.js:597
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
(anonymous) @ cfs_power-queue.js:575
withValue @ meteor.js:1077
(anonymous) @ meteor.js:464
(anonymous) @ meteor.js:1105
setTimeout (async)
setTimeout @ meteor.js:487
PowerQueue.runTaskDone @ cfs_power-queue.js:574
subQueueCallbackDone @ cfs_power-queue.js:598
subQueue.onRelease @ cfs_power-queue.js:631
PowerQueue.next @ cfs_power-queue.js:474
(anonymous) @ cfs_power-queue.js:575
withValue @ meteor.js:1077
(anonymous) @ meteor.js:464
(anonymous) @ meteor.js:1105
setTimeout (async)
setTimeout @ meteor.js:487
PowerQueue.runTaskDone @ cfs_power-queue.js:574
taskCallbackDone @ cfs_power-queue.js:607
(anonymous) @ cfs_upload-http.js:384
(anonymous) @ cfs_upload-http.js:108
(anonymous) @ underscore.js:794
xhr.onreadystatechange @ cfs_upload-http.js:231
XMLHttpRequest.send (async)
httpCall @ cfs_upload-http.js:237
gotBinaryCallback @ cfs_upload-http.js:373
reader.onload @ cfs_data-man.js:336
FileReader (async)
read @ cfs_data-man.js:341
(anonymous) @ cfs_data-man.js:363
dataManGetBlob @ cfs_data-man.js:289
dataManGetBinary @ cfs_data-man.js:344
_taskHandler @ cfs_upload-http.js:366
PowerQueue.runTask @ cfs_power-queue.js:606
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
(anonymous) @ cfs_power-queue.js:575
withValue @ meteor.js:1077
(anonymous) @ meteor.js:464
(anonymous) @ meteor.js:1105
setTimeout (async)
setTimeout @ meteor.js:487
PowerQueue.runTaskDone @ cfs_power-queue.js:574
taskCallbackDone @ cfs_power-queue.js:607
(anonymous) @ cfs_upload-http.js:384
(anonymous) @ cfs_upload-http.js:108
(anonymous) @ underscore.js:794
xhr.onreadystatechange @ cfs_upload-http.js:231
XMLHttpRequest.send (async)
httpCall @ cfs_upload-http.js:237
gotBinaryCallback @ cfs_upload-http.js:373
reader.onload @ cfs_data-man.js:336
FileReader (async)
read @ cfs_data-man.js:341
(anonymous) @ cfs_data-man.js:363
dataManGetBlob @ cfs_data-man.js:289
dataManGetBinary @ cfs_data-man.js:344
_taskHandler @ cfs_upload-http.js:366
PowerQueue.runTask @ cfs_power-queue.js:606
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
(anonymous) @ cfs_power-queue.js:575
withValue @ meteor.js:1077
(anonymous) @ meteor.js:464
(anonymous) @ meteor.js:1105
setTimeout (async)
setTimeout @ meteor.js:487
PowerQueue.runTaskDone @ cfs_power-queue.js:574
taskCallbackDone @ cfs_power-queue.js:607
(anonymous) @ cfs_upload-http.js:384
(anonymous) @ cfs_upload-http.js:108
(anonymous) @ underscore.js:794
xhr.onreadystatechange @ cfs_upload-http.js:231
XMLHttpRequest.send (async)
httpCall @ cfs_upload-http.js:237
gotBinaryCallback @ cfs_upload-http.js:373
reader.onload @ cfs_data-man.js:336
FileReader (async)
read @ cfs_data-man.js:341
(anonymous) @ cfs_data-man.js:363
dataManGetBlob @ cfs_data-man.js:289
dataManGetBinary @ cfs_data-man.js:344
_taskHandler @ cfs_upload-http.js:366
PowerQueue.runTask @ cfs_power-queue.js:606
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
PowerQueue.run @ cfs_power-queue.js:750
PowerQueue.queueTaskHandler @ cfs_power-queue.js:638
PowerQueue.runTask @ cfs_power-queue.js:597
PowerQueue.updateThrottleUp @ cfs_power-queue.js:412
PowerQueue.next @ cfs_power-queue.js:461
PowerQueue._autoStartTasks @ cfs_power-queue.js:366
PowerQueue.add @ cfs_power-queue.js:391
UploadTransferQueue.self.uploadFile @ cfs_upload-http.js:578
beginStorage @ cfs_collection.js:246
(anonymous) @ cfs_collection.js:282
(anonymous) @ mongo.js:720
(anonymous) @ meteor.js:1105
_maybeInvokeCallback @ ddp-client.js:3679
dataVisible @ ddp-client.js:3709
(anonymous) @ ddp-client.js:4560
_.each._.forEach @ underscore.js:149
_runAfterUpdateCallbacks @ ddp-client.js:4559
_performWrites @ ddp-client.js:4549
_flushBufferedWrites @ ddp-client.js:4512
_livedata_data @ ddp-client.js:4478
onMessage @ ddp-client.js:3526
(anonymous) @ ddp-client.js:2909
_.each._.forEach @ underscore.js:149
self.socket.onmessage @ ddp-client.js:2908
REventTarget.dispatchEvent @ ddp-client.js:143
SockJS._dispatchMessage @ ddp-client.js:1310
SockJS._didMessage @ ddp-client.js:1376
that.ws.onmessage @ ddp-client.js:1532