首先我们需要进入ant-design文档中,找到upload组件

import React from "react";
import { Upload, Modal } from 'antd';
import { PlusOutlined } from '@ant-design/icons';function getBase64(file) {return new Promise((resolve, reject) => {const reader = new FileReader();reader.readAsDataURL(file);reader.onload = () => resolve(reader.result);reader.onerror = error => reject(error);});
}export default class PicturesWall extends React.Component {state = {previewVisible: false,previewImage: '',previewTitle: '',fileList: [],};handleCancel = () => this.setState({ previewVisible: false });handlePreview = async file => {if (!file.url && !file.preview) {file.preview = await getBase64(file.originFileObj);}this.setState({previewImage: file.url || file.preview,previewVisible: true,previewTitle: file.name || file.url.substring(file.url.lastIndexOf('/') + 1),});};handleChange = ({ fileList }) => this.setState({ fileList });render() {const { previewVisible, previewImage, fileList, previewTitle } = this.state;const uploadButton = (<div><PlusOutlined /><div style={{ marginTop: 8 }}>Upload</div></div>);return (<><Uploadaction={`${HOST}:${PORT}/goods/upload`}  //和后台接口对应一致,这是我自己的接口,大家自行设置listType="picture-card"fileList={fileList}onPreview={this.handlePreview}onChange={this.handleChange}>{fileList.length >= 8 ? null : uploadButton}</Upload><Modalvisible={previewVisible}title={previewTitle}footer={null}onCancel={this.handleCancel}><img alt="example" style={{ width: '100%' }} src={previewImage} /></Modal></>);}
}

这样一个简单的上传页面就能看到了

那么接下来如何实现将图片发送到后台服务器?

第一步:下载connect-multiparty组件
第二步: 导入上传中间件并创建上传中间件对象

const multiparty = require('connect-multiparty');
const multipartyMiddleWare = multiparty();

图上上传接口:goodsapi.js

/*图片上传接口:http://localhost:8089/goods/upload
*/
router.post('/upload',multipartyMiddleWare,(req, res) => {//输出上传文件的名称(测试)console.log("上传文件名:",req.files.photoContent.name)//获取上传文件let file = req.files.photoContent;   //将上传文件保留在临时文件中//设置上传文件的保存位置let desc_dir = path.join(__dirname+'../../../public/images')+'\\'+file.originalFilenameconsole.log("保存路径:",desc_dir)//将临时文件中的数据复制到保存位置fs.readFile(file.path,function (err,data) {fs.writeFile(desc_dir,data,function (err) {if (err){console.log(err)res.json({code: 1002,msg: '写入文件失败'})}})})//将上传图片的存储路径响应给客户端res.json({code: 1000,ImgPath: `http://localhost:8089/images/${file.originalFilename}`//网络访问时,public是虚拟目录,不需要写出来})
})

图片上传成功后在后台服务器能呈现出来文件名

react 实现图片上传功能相关推荐

  1. ckeditor java 上传_java使用CKEditor实现图片上传功能

    java如何使用ckeditor实现图片上传功能,具体内容如下 1.根据实际需要下载指定的ckeditor 2.删除文件ckeditor/plugins/image/dialogs/image.js预 ...

  2. 关于微信内置浏览器,打开图片上传功能,调用的问题

    关于微信内置浏览器,打开图片上传功能,调用的问题 前段时间,项目完结测试的时候,同事打开魅族手机测试,无意中发现一个奇葩的问题! 描述: 显示的是文件系统,列表式的,没有调用相机的功能图标,为什么呢? ...

  3. (转)淘淘商城系列——实现图片上传功能

    http://blog.csdn.net/yerenyuan_pku/article/details/72808000 上文我们使用FastDFS-Client进行了简单的文件上传操作测试,淘淘商城项 ...

  4. Smiditor实现图片上传功能

    Simditor 是 Tower 开源的一个基于浏览器所见即所得的文本编辑器. 相比传统的编辑器它的特点是: 功能精简,加载快速 输出格式化的标准 HTML 每一个功能都有非常优秀的使用体验 兼容的主 ...

  5. PHP实现图片上传功能

    PHP实现图片上传功能: 第一个页: picupload.php 代码如下: <form action="picop.php"  method="post" ...

  6. ckfinder php 配置,PHP中Ckeditor+Ckfinder配置图片上传功能_PHP教程

    从标题来看我们知道Ckeditor不支持图片上传功能,它是需要一个组件Ckfinder才可以支持上传图片, 本文章就来详细的介绍了如何配置Ckeditor+Ckfinder实现图片上传的功能. 第一: ...

  7. Vue 图片上传功能

    Vue 图片上传功能 Vue 图片上传功能,自定义上传 限制上传类型 & 多选: ① accept 属性只能与 配合使用.它规定能够通过文件上传进行提交的文件类型. ② multiple 属性 ...

  8. 纯前端实现图片上传功能

    纯前端实现图片上传功能,告别后端formData上传 使用ElementUI中的upload组件+腾讯云实现简单的图片上传功能 了解了upload的基本属性之后我们要开始上硬菜了 使用ElementU ...

  9. 织梦dedecms广告管理增加广告图片上传功能

    织梦的广告位管理是一个不错的插件内部插件,但是dedecms的广告管理功能稍微有点次,不能直接上传图片生成图片链接 本文就是在dedecms广告管理原有的基础上增加广告图片上传功能. 安装方法,对应自 ...

最新文章

  1. c语言中怎么吃掉最后的空格,新人提问:如何将输出时每行最后一个空格删除...
  2. CSDN-markdown编辑器使用方法
  3. Elasticsearch 索引容量管理实践
  4. Error:The supplied javaHome seems to be invalid. I cannot find the java executable
  5. java rmi 是否 必要_Java学习之路-RMI学习
  6. Android 绑定类型服务---使用信使(Messenger)
  7. keystore是个嘛东西
  8. LeetCode(344)——反转字符串(JavaScript)
  9. 高仿城通网盘php,PHP代码提取城通网盘直链跳过广告下载
  10. 阿里云活动价格点击购买时价格上涨的解决办法
  11. 专用集成电路 -- 运算电路 (加法器,乘法器,移位器)
  12. 中信转型Carry全场 用友云助攻共享采购平台
  13. stm32流水灯c语言程序,STM32——流水灯程序
  14. 微信小程序本地图片处理--按屏幕尺寸插入图片
  15. 【同一电脑原win用户信息迁移到新Win用户下python interpreter显示 no interpreter问题】
  16. 自己动手「焊」键盘,使用Python编写,一键放连招不在话下!
  17. form的onsubmit事件--表单提交前的验证最佳实现方式
  18. DNS解析出现错误故障解决
  19. 9.条件语句(if语句)
  20. 区块链与制造业【中美】发展报告

热门文章

  1. 软件测试之项目实战,必须知道的事与测试面试项目测试流程......
  2. matlab中a2=poly(p2),插值与拟合matlab实现
  3. php小偷程序--获取网站内容
  4. 单片机指令MOV、MOVC、MOVX的区别与联系
  5. java pdm 解析_java解析静态AIS原始数据
  6. 如何给Eclipse进行汉化
  7. 简单认识程序的编译过程
  8. Oracle 报错 28000原因和解决方法
  9. [转帖]半导体行业观察
  10. 谷歌:加入账号其他设备登陆通知功能