2017-04-05 78 views
-2

我是新來開發Rest API的,我已經嘗試了下面這個方法來上傳一個使用HTML這個代碼工作的文件。然後我在郵遞員身上試了一下,我得到了積極的迴應,但文件沒有上傳,我可以知道我做錯了什麼嗎?文件沒有上傳使用節點js multer

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

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

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

我用下面的方法來上傳文件。當我使用HTML上傳文件時很有用。 但是,如果我嘗試使用郵遞員,我得到的文件是上傳消息。但是在目標文件夾中沒有文件。

app.post('/api/photo',function(req,res){ 
    upload(req,res,function(err) { 
     if(err) { 
     // res.end({"error" : true,"message" : "Error uploading file."}); 
     res.end("Error uploading file."); 
     } 
    res.end("File is uploaded"); 
     // res.json({"error" : false,"message" : "File is uploaded"}); 
    }); 
}); 

在這裏,我已經加了我的HTML文件

<html> 
    <head> 
    <title>File upload Node.</title> 
    </head> 
    <body> 
     <form id="uploadForm" 
      enctype="multipart/form-data" 
      action="/api/photo" 
      method="post"> 
     <input type="file" name="userPhoto" /> 
     <input type="submit" value="Upload Image" name="submit"> 
     <span id = "status"></span> 
    </form> 
    </body> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script> 
    <script> 
    $(document).ready(function() { 

    $('#uploadForm').submit(function() { 
     $("#status").empty().text("File is uploading..."); 

     $(this).ajaxSubmit({ 

      error: function(xhr) { 
        status('Error: ' + xhr.status); 
      }, 

      success: function(response) { 
        console.log(response) 
        $("#status").empty().text(response); 
      } 
    }); 

    return false; 
    });  
}); 
    </script> 
</html> 

我嘗試過很多方法,但我找不到任何解決方案,任何人都可以請幫我解決這個問題?

回答

0

代碼正常運行,由於請求頭髮生問題。

{"Content-Type":"application/json"} 

我剛剛刪除它。

This answer幫我解決了這個問題