Je travaille actuellement sur une application Phonegap, et je voudrais que les utilisateurs puissent télécharger n'importe quel fichier sur mon serveur NodeJS.Erreur de transfert de fichier en utilisant Cordova FileTransfer vers NodeJS
Je l'ai cherchée partout sur le web, mais je ne peux pas obtenir quoi que ce soit au travail ...
Voici le code que je utilise pour le contrôleur Phonegap:
$scope.open = function()
{
navigator.camera.getPicture(upload,
function(message)
{
alert('get picture failed');
},
{
quality: 50,
destinationType: navigator.camera.PictureSourceType.FILE_URI,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
mediaType: navigator.camera.MediaType.ALLMEDIA
});
}
var win = function (r) {
$scope.log = "Code = " + r.responseCode;
$scope.log2 = "Response = " + r.response;
$scope.log3 = "Sent = " + r.bytesSent;
$scope.$digest();
}
var fail = function (error) {
$scope.log = "An error has occurred: Code = " + error.code;
$scope.log2 = "upload error source " + error.source;
$scope.log3 = "upload error target " + error.target;
$scope.$digest();
}
function upload(fileURI)
{
$scope.log = fileURI;
$scope.$digest();
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
options.chunkedMode = false;
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
ft.upload(fileURI, "http://192.168.192.111:2999/upload", win, fail, options);
}.
ici est le code actuel pour le serveur NodeJS, ont essayé beaucoup de choses différentes, sans y réussir
var express = require('express');
var http = require('http').Server(express);
var io = require('socket.io')(http);
var fs = require('fs');
var multer = require('multer');
var app = new express();
app.post('/upload', multer({dest: './uploads/'}).single('upl'), function(req, res)
{
console.log(req.body);
console.log(req.file);
})
http.listen(2999, function(){
console.log('listening on *:2999');
});
Dans l'application, je l'habitude d'obtenir des erreurs qui FileUploadOptions etc ne sont pas définis, mais je fixe par un les envoyer au projet Cordova. En outre, j'utilise ionique 1, si cela aide quelqu'un. Je reçois constamment le code d'erreur 1 (source d'erreur de téléchargement), même si j'ai sélectionné un fichier réel et j'ai vu que le lien était correct (quelque chose comme/storage/0/émulé/Téléchargements sur mon appareil Android) .
Aussi, parfois il me donne aussi l'erreur 3 (télécharger la source cible), une sorte de problème de serveur non trouvé je pense.
Y at-il quelque chose d'évident que je fais mal et comment serais-je capable de le réparer? Y a-t-il un moyen plus pratique, puisque je veux éventuellement lier ceci à une base de données MySQL.
Merci d'avance!
Peut-être une explication derrière ce code? –
Une bonne lecture: https://stackoverflow.com/help/how-to-answer – RPichioli
C'est un champs de formulaire de code complet de ajax + jquery à nodejs et enregistrer dans mysql DB –