簡體   English   中英

從cordova文件傳輸插件上傳文件到nodeJS服務器

[英]upload file from cordova file transfer plugin to nodeJS server

我正在嘗試將我從cordova( cordova插件文件傳輸)拍攝的圖片上傳到nodeJS服務器。 這是我的移動應用程序代碼:

function uploadToServer(pictureName, fileURI) {

  var options = new FileUploadOptions();
  options.fileKey = "file";
  options.mimeType = "image/jpeg";
  options.fileName = pictureName;

  var ft = new FileTransfer();
  ft.upload(fileURI, encodeURI(CONSTANTS.hosts.remoteSR),
    function (res) {
      console.log("Code = " + res.responseCode);
    },
    function (error) {
      $log.debug(error)
      alert("An error has occurred: Code = " + error.code);
    },
    options);

}

PS:fileURI 和pictureName 是valide 參數並在其他函數中正確測試。

我的節點JS服務器代碼:

var express =   require("express");
var multer  =   require('multer');
var app         =   express();

var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage}).single('userPhoto');

app.get('/',function(req,res){
  res.sendFile(__dirname + "/index.html");
});

app.post('/api/photo',function(req,res){
  upload(req,res,function(err) {
    if(err) {
      console.log(err)
      return res.end("Error uploading file.");
    }

    res.end("File is uploaded");
  });
});

app.listen(3000,function(){
  console.log("Working on port 3000");
});

PS:當我從其他來源上傳時,上傳工作正常。 (例如來自 index.html 上傳表單)

當我執行代碼時會發生什么:“代碼= 200”這意味着上傳成功但不知何故我沒有找到我的文件上傳。

問題:如何使用nodeJS正確插入cordova文件傳輸插件

節點版本:4.4.7 Cordova 版本:6.x

好的,我找到了:

options.fileKey = "file";  

應該匹配

multer({ storage : storage}).single('userPhoto');

所以 options.fileKey 應該像這樣設置為 userPhoto

options.fileKey = "userPhoto";  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM