美文网首页
Alamofire+Node.js上传图片

Alamofire+Node.js上传图片

作者: lenbolan | 来源:发表于2021-02-02 15:44 被阅读0次
  1. swift中的主要代码:
       guard let profileImg = self.plusPhotoBtn.imageView?.image else { return }
       guard let uploadData = profileImg.jpegData(compressionQuality: 0.3) else { return }
       
       let filename = NSUUID().uuidString
       
       AF.upload(multipartFormData: { multipartFormData in
           multipartFormData.append(uploadData, withName: "imgUploader", fileName: "\(filename).jpg", mimeType: "image/jpeg")
       }, to: "http://localhost:3000/api/upload")
       .uploadProgress { progress in
           print(CGFloat(progress.fractionCompleted)*100)
       }
       .response { response in
           if (response.error == nil) {
               if (response.data == nil) {
                   print(response.response?.description)
               } else {
                   print(String(bytes: response.data!, encoding: .utf8))
               }
               print(response.response?.statusCode)
               var responseData: NSData = response.data! as NSData
               var len = responseData.length
               print("Size: \(len) bytes")
               print("response time: \(response.metrics?.taskInterval.duration)")
           } else {
               print(response.error?.errorDescription)
           }
       }
  1. nodejs中的主要代码:
var express = require('express');
var router = express.Router();
var multer = require('multer');

var Storage = multer.diskStorage({
  destination: function(req, file, callback) {
    callback(null, './public/images');
  },
  filename: function(req, file, callback) {
    callback(null, file.fieldname + "_" + Date.now() + "_" + file.originalname);
  }
});
var upload = multer({
  storage: Storage
}).single("imgUploader");

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

router.post("/api/upload", function(req, res) {
  upload(req, res, function(err) {
    if (err) {
      console.log(err);
      return res.end("Something went wrong!");
    }
    return res.end("File uploaded successfully!");
  });
});

module.exports = router;
  1. 注意项:
// swift
multipartFormData.append(uploadData, withName: "imgUploader", fileName: "\(filename).jpg", mimeType: "image/jpeg")

// js
var upload = multer({storage: Storage}).single("imgUploader");

// 以上两处的 'imgUploader' 要对应上

相关文章

网友评论

      本文标题:Alamofire+Node.js上传图片

      本文链接:https://www.haomeiwen.com/subject/xsyytltx.html