因为之前的方案小程序不支持datafrom所以之前的上传方式改变了,也不能进行请求发送,只能用到 wx.uploadFile提供的方法
我们直接上小程序代码
//选择图片
wx.chooseMessageFile({
count: 1,
type: 'file',
success(res) {
wx.uploadFile({
url: url,//你的node服务端口
filePath:res.tempFiles[0].path,//这里接受上传文件的path
header: {
"content-type": "multipart/form-data"//注意
},
success(res) {console.log(res);},
fail:function(err){console.log(err);}
})
}
});
node代码
var express = require('express');
var app = express();
var multer = require('multer'); //multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
var bodyParser = require('body-parser'); // 这个模块是获取post请求传过来的数据。
app.use(bodyParser.urlencoded({ extended: false })); // 判断请求体是不是json,不是的话把请求体转化为对象
var formidable = require('formidable');
var fs = require('fs');
app.use(multer({ dest: './public/' }).any())// 通过配置multer的dest属性, 将文件储存在项目下的tmp文件中
app.use('/statics', express.static('statics'));
app.post('/upload', function (req, res) {
let old = req.files[0].path //获取path:
fs.renameSync(old, './public/' + req.files[0].path + path.parse(req.files[0].originalname).ext)
});
app.listen(3000)
结果