原生小程序上传图片到node(express)后端保存图片

在这里插入图片描述

因为之前的方案小程序不支持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)

结果
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序是一种轻量级的应用程序,可以在移动设备上运行,具有快速加载、用户界面简洁等特点。在小程序开发中,可以使用PHP作为后端语言来完成图片上传功能。 首先,在小程序端,可以使用微信官方提供的API来选择图片,并将选择的图片转化为Base64格式的字符串编码。然后,将该字符串作为参数,通过网络请求将图片数据发送给后端。 在PHP后端,可以接收前端传递的图片数据,并将Base64字符串解码为真实的图片文件。可以使用base64_decode函数来实现解码操作。解码后的图片文件可以保存到服务器的指定路径中。 具体的操作步骤如下: 1. 在小程序端,使用微信原生API获取用户选择的图片,并将图片转换为Base64格式的字符串编码。 2. 将Base64字符串作为参数,通过网络请求POST方式将图片数据发送到PHP后端。 3. PHP后端接收到图片数据后,使用base64_decode函数将Base64字符串解码为图片文件。 4. 将解码后的图片文件保存到服务器的指定路径中,可以使用file_put_contents函数实现保存操作。 5. 返回给小程序端上传成功的消息或者图片的URL地址。 在实际开发中,还需要注意图片大小的限制、文件格式的判断等问题。同时,为了保证安全性,在后端还可以进行一些图片验证或者权限控制的处理。 通过以上步骤,就可以实现小程序中使用PHP后端完成图片上传的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值