思路:通过普通表单提交图片,在node端获取流转发给微信upload,得到返回值mediaid。 问题: 如何转发,数据格式是?用那个组件比较好用。我用的request。
微信这块整个流程大部分都已经搞定了。但是搞到推送的时候,需要mediaid ,微信的案例用的post,target到iframe,这块我不是很了解。而且网上说这样暴露的token,但是用了html5的new FormData() ,用ajax做了上传。转发的时候遇到了问题。整了几天无果。做前端好久没做过上传了,记得以前无刷新上传用的swfupload ,现在可以用html5的ajax上传了。但是如何中转给微信成了问题
@huangshaohui 其实也不必先保存在服务器上。保存在服务器上之后,最终还是要把图片读进来,成为内存中的一块内容。
但借鉴一下这个思路,我们这里可以不搞流转发,而是等前端用户数据上传完之后,得到一个二级制内容的变量,再将这个变量提交给微信端。
如果我没记错的话,CNode 就是这个思路,楼主可以试试。
@alsotang 多谢你的回答,我就是这么整的。但是一直报找不到数据 代码如下 var formData={ media: { value: fs.createReadStream(req.files.media.path), options: { name:’media’, filename: filename, contentType: req.files.media.type, filelength:req.files.media.size } } }; request.post({url:"https://api.weixin.qq.com/cgi-bin/media/upload?access_token="+token+"&type=image", formData: formData}, function(err,httpResponse,body){ res.json(body); //此处一直报 {"errcode":41005,"errmsg":"media data missing"} 说是找不到数据 });