Ich arbeite derzeit an einer Phonegap App, und ich möchte, dass Benutzer in der Lage, jede Datei auf meinen NodeJS-Server hochladen.Datei-Upload-Fehler mit Cordova FileTransfer zu NodeJS
Ich habe alle auf der Suche rund um das Internet, aber ich kann einfach nicht alles an der Arbeit ...
Hier ist der Code ich bin für die Phonegap Controller:
$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);
}.
Hier der momentane Code ist für den NodeJS Server haben viele verschiedene Dinge ausprobiert, die alle ohne Erfolg:
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');
});
In der App ich verwendet, um Fehler zu erhalten, die FileUploadOptions etc nicht definiert wurden, aber ich festgelegt, dass durch eine dding sie an das Cordova-Projekt. Außerdem verwende ich ionische 1, wenn das jemand hilft.
Ich bekomme ständig den Fehlercode 1 (Upload Fehlerquelle), obwohl ich eine echte Datei ausgewählt habe und ich sah, dass der Link korrekt war (sowas wie/storage/0/emuliert/Downloads auf meinem Android Gerät) .
Auch manchmal gibt es mir auch Fehler 3 (Zielquelle hochladen), eine Art von Server nicht gefunden Problem, denke ich.
Gibt es etwas Offensichtliches, das ich falsch mache und wie würde ich es beheben können? Gibt es einen besseren Weg, da ich dies schließlich mit einer MySQL-Datenbank verknüpfen möchte.
Vielen Dank im Voraus!
Vielleicht eine Erklärung hinter diesem Code? –
Eine gute Lektüre: https://stackoverflow.com/help/how-to-answer – RPichioli
Es ist ein komplettes Codeformular Felder von Ajax + Jquery zu Nodejs und speichern in Mysql DB –