关于图片上传的问题(后端+前端)

后端部分:

首先下载multiparty,这个模块可以让你接受图片        

// 可以接受图片
const multiparty = require('multiparty')
// 配置图片上虚拟路由
router.use("/upload", express.static("upload"))

/upload为路由,相当于上传图片到什么地方

// 上传图片
router.post('/myupload', (req, res) => {
  let form = new multiparty.Form()
  form.uploadDir = 'upload'
  form.parse(req, (err, formData, imgData) => {
    // 将上传的图片传递给前端
    res.send({
      path: imgData.file[0].path
    })
  })
})

这个方法可以让你接受到从前端接受到的图片,为post传值

前端部分(使用了element-ui的图片上传)

<el-image :src="'http://localhost:3000/' + list.img"></el-image>
	<el-upload :show-file-list='false' action="http://localhost:3000/myupload" :on-success="success">
	<i class="qq"></i>
	<img v-if="imageUrl" :src="imageUrl" class="avatar">
</el-upload>

这里的:src为本地的路径,可以改变路径

// 上传图片
success(res) {
    this.imageUrl = URL.createObjectURL(file.raw);
	this.list.img = res.path
},
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java后端获取前端图片可以通过以下步骤实现: 1. 前端图片转换为Base64编码,并通过POST请求发送给后端。 2. 后端接收到请求后,读取POST请求中的Base64编码字符串。 3. 将Base64编码字符串转换为字节数组。 4. 将字节数组转换为图片格式,保存到本地或者存储到数据库中。 以下是一个简单的示例代码: 前端代码: ```html <input type="file" accept="image/*" onchange="readImage(this)"> <script> function readImage(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { var image = e.target.result; //将图片转换为Base64编码,发送到后端 $.ajax({ type: "POST", url: "/uploadImage", data: { "image": image }, success: function (data) { alert("上传成功"); }, error: function (xhr, textStatus, error) { alert("上传失败:" + error); } }); }; reader.readAsDataURL(input.files[0]); } } </script> ``` 后端代码: ```java @PostMapping("/uploadImage") public String uploadImage(@RequestParam("image") String imageBase64) { //将Base64编码字符串转换为字节数组 byte[] imageBytes = Base64.getDecoder().decode(imageBase64.split(",")[1]); //将字节数组转换为图片格式 BufferedImage image = null; try { image = ImageIO.read(new ByteArrayInputStream(imageBytes)); } catch (IOException e) { e.printStackTrace(); } //保存图片到本地或者存储到数据库中 //... return "success"; } ``` 需要注意的是,在实际应用中,需要对上传的图片进行大小、格式等限制,以确保系统的安全性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值