ios端代码:
let image = goodPhoto[0] let imageData = UIImageJPEGRepresentation(image, Constants.goodPhotoCompressionQuality) if let imageData = imageData { uploadGoodPhotoWithImageData(imageData) } func uploadGoodPhotoWithImageData(imageData: NSData) { let header: [String : String] = [ "Authorization": "Bearer \(Provider.readToken())" ] let name = "good" let filename = "good.jpg" Alamofire.upload(.POST, URLString.uploadURLStr + "/good", headers: nil, multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(data: imageData, name: name, fileName: filename, mimeType: "image/jpeg") }, encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload, _, _): upload.responseJSON{ response in debugPrint(response) } case .Failure(let encodingError): print("Upload failed with error: \(encodingError)") } } ) }
后台代码:
var express = require("express"); var multer = require('multer'); var app = express(); function handleError(res, err) { return res.json(500, err); }; var storage = multer.diskStorage({ destination: function (req, file, callback) { console.log('b'); callback(null, './uploads'); }, filename: function (req, file, callback) { console.log('b'); callback(null, file.fieldname + '-' + Date.now()); } }); // var upload = multer({dest: 'photo/good/'}).single('good'); var upload = multer({storage: storage}).single('good'); exports.uploadGood = function (req, res) { upload(req, res, function(err) { console.log(err); if (err) { return handleError(res, err); } res.json(200, {msg: "File is uploaded"}); }); };
后台报了500错误,我console.log(err)是这样的
求大神解答
multer没用过,简单看了一下,基于busboy的,那么这个文件是直接写到了静态文件服务器/缓存还是通过GridFS存到了MongoDB,如果是做保存静态文件的操作,会不会是权限的问题?
找不到路径,可能是你没有新建uplaods目录