Sto utilizzando skipper per caricare più file contemporaneamente in una cartella locale. Ma ho incontrato pochi problemi.Gestione caricamenti con skipper in sails.js (in corso)
upload: function (req, res) {
if (_.isEmpty(req.session.User)){
return res.json({ //---> 1
success: 0
});
}else{
res.setTimeout(0);
var MAXBYTES = 10*1000*1000;
//---> 2
if (req._fileparser.form.bytesExpected > MAXBYTES){
return res.json({
success: 0,
error: 'File size limit exceeded.'
});
}else{
req.file('file[]').on('progress', function(event){
return event; //---> 3
}).upload({
maxBytes: MAXBYTES
}, function whenDone(err, uploadedFiles) {
//---> 4
return res.json({
success: 1,
});
});
}
}
},
primo errore //---> 1
Se l'utente non è connesso voglio terminare questo processo di caricamento e tornare successo = 0. Questo non funziona. Sul lato client la richiesta viene mantenuta sospesa senza alcuna risposta.
secondo errore //---> 2
Ho avuto un errore in precedenza come descritto qui https://github.com/balderdashy/skipper/issues/36 e così come una soluzione rapida ho usato quello che qualcuno ha usato nei commenti su github. Ma ancora come nel problema 1, mi sono imbattuto in questo problema. Se la dimensione del file supera quella di MAXBYTES, voglio terminare questo processo di caricamento e restituire successo = 0 all'utente. Il non sta tornando al lato client.
terzo errore //---> 3
Voglio utilizzare in corso per creare una barra di avanzamento. Ma ho subito incontrato alcuni problemi. Prima di tutto, l'uso dei progressi rallenta troppo il sistema. Inoltre porta ad un errore nel 4 ° passo.
quarto errore //---> 4
Se rimuoviamo l'opzione on ("avanzamento") dal passaggio 3, funziona come previsto. Al termine del caricamento, restituisce successo = 1 al client. Tuttavia, quando è attivo ("avanzamento"), return res...
nel passaggio //---> 4
non funziona e, ancora una volta, la richiesta del client viene mantenuta sospesa senza alcuna risposta.
alcune domande: Perché non i seguenti lavori codice //---> 1
mentre si lavora in //---> 4
se il ('progresso') non è presente
return res.json({
success: 0
});
Perché il sui progressi rallentare il processo di caricamento così tanto?
Btw sul lato client utilizzo il plugin form.js. E quindi la mia richiesta è simile al seguente:
$('#upload').ajaxForm({
uploadProgress: function(event, position, total, percentComplete){
console.log(percentComplete);
},
success: function(data) {
console.log(data);
}
});