• egg上传图片到阿里云服务器


    为了使文章清晰,这篇文章主要写上传图片的代码部分,关于数据库的配置,阿里云服务器的配置,oss对象存储的使用,上传图片在本地文件夹等问题在其他文章将会一一解答。

    前端代码部分:

    上传组件主要代码如下:

    
    
    render() {
        const { name = "avatar" } = this.props;
        return (
          <Upload
            name={name}
            className="avatar-uploader"
            showUploadList={false}
            action={`${reqUrl/avatar/saveAvatar?user_id=${user_id}&update_time=${update_time}`}
            beforeUpload={beforeUpload}
            onChange={this.handleChange}
          >
          </Upload>
        );
      }

    reqUrl :请求接口地址,

    beforeUpload : 对图片的一些处理,

    handleChange :上传成功后对图片的处理,

    页面使用

     
    <UploadAvatar name={"cover"} getImageUrl={this.getImageUrl()} /> 

    后端主要代码:

    controller下:

    const alidata = await ctx.service.avatar.uploadAvatar(); 

    service下:

    // 上传头像到阿里云oss
      async uploadAvatar() {
        const { ctx } = this;
        let parts = ctx.multipart({ autoFileds: true });
        let stream;
        const client = new oss({
          accessKeyId: "xxx",
          accessKeySecret: "xxx",
          bucket: "bucketofreactandeggblog",
          region: "oss-cn-beijing",
        });
    
        while ((stream = await parts()) != null) {
          if (!stream.filename) {
            break;
          }
    
          let name = new Date() * 1 + path.extname(stream.filename);
          let res = await client
            .putStream(`tests/${name}`, stream)
            .catch(function (err) {
              console.log("error: %j", err);
            });
          return res;
        }
      

    以上为上传头像前后端的主要代码,详细代码后面可以去我的github上看,稍后我会添加上我的github地址,如果又发现什么不成熟的地方请多多指教。给我留言即可。

  • 相关阅读:
    找到一种给vs2012对话框插入背景图片不会失真的方法
    第一次用C语言把数据写入文件中
    Java学习路线图
    一:MyBatis Generator 【SpringMvc+Spring+MyBatis+Maven整合学习笔记】
    windows系统安装Redis
    js子级窗口相互调用父级的方法
    MSSQL 发布订阅,实现读写分离
    查看MS SQL最耗时间资源的SQL
    数据库优化
    mybatis与hibernate区别
  • 原文地址:https://www.cnblogs.com/sinceForever/p/15928622.html
Copyright © 2020-2023  润新知