[已解决] 华为云创建chevereto图床 并在vue项目中实现图片上传功能

1 Chevereto图床搭建 (建议安装1.4.2版本 方便后面汉化)

1.1 chevereto 下载链接

1.2 安装可参考如下文章:

Chevereto图床搭建 | 利用云服务器搭建免费图床完整教程
Chevereto图床搭建教程 | 利用云服务器免费搭建私人图床
Chevereto——简介及安装

2 关于 Chevereto图床 汉化问题

2.1 chevereto图床最新1.5.1版本改成中文语言的方法

3 使用图片上传的api

使用postman测试如下
请添加图片描述

现在postman测试显示是成功了的
但是如果我们在vue项目中去使用,可能会碰到跨域问题
解决如下:

4 编辑 Chevereto 内部代码 允许跨域 [参考文章]

进入 Chevereto 图床服务的文件目录,拷贝和编辑 route.api.php 文件实现允许跨域:

cd app/routes/
cp route.api.php overrides/route.api.php

对 app/routes/overrides/ 目录下的 route.api.php 进行编辑:

// route.api.php 第二行加入以下代码,https://localhost 改为自己的 WordPress 所用域名
header('Access-Control-Allow-Origin: https://localhost');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type, Accept, Authorization, X-Requested-With, Origin, Accept');

然后在这个文件内找到 KaTeX parse error: Undefined control sequence: \Image at position 18: …loaded_id = CHV\̲I̲m̲a̲g̲e̲::uploadToWebsi…source); (一般在105行),替换为以下代码:

// admin 为图床中的用户名
$uploaded_id = CHV\Image::uploadToWebsite($source,admin);

保存之后,就解决了跨域问题

5 结合el-upload进行使用

请添加图片描述

代码如下:

<el-form-item label="图片" prop="img_url">
        <el-upload
          class="avatar-uploader"
          action=""
          :http-request="upload"
        >
          <img
            v-if="ruleForm.img_url"
            width="80"
            height="80"
            :src="ruleForm.img_url"
            class="avatar"
          >
          <i v-else class="el-icon-plus avatar-uploader-icon" />
        </el-upload>
      </el-form-item>
      
      
//处理函数
upload(params) {
      const data = new FormData()
      data.append('source', params.file)
      this.$axios({
        url: 'http://124.71.112.249/api/1/upload/?key=这里填写你的Chevereto的key',
        method: 'post',
        data,
        headers: { 'Content-Type': 'multipart/form-data' }
      }).then(res => {
        console.log('上传图片成功', res)
        // 这一步的作用是用于图片回显
        this.ruleForm.img_url = res.data.image.url
        this.$message.success('上传成功!')
      }).catch(err => {
        console.log('图片上传失败', err)
      })
    },

6 如果传送时报 400

  1. 检查浏览器network中传输时图片格式是否被改变了 ,建议使用formdata来传输文件
  2. axios post请求头content-type默认是application/json,而我们需要的是multipart/form-data。
    :::
    请添加图片描述
Chevereto是一套基于PHP构建,易于安装和配置使用,无需MySQL数据库支持的开源在线片存储分享服务系统。它支持本地上传和在线获取两种上传方式,集成了TinyURL网址缩短服务 Chevereto图片上传程序源码是一款非常简洁的PHP图片上传程序,可以将本地电脑上或者是网络上的图片上传到服务器上。以前的Chevereto不需要MySQL数据库,现在需要了,不过这一改变只是为了提高片的安全性。同时,集成了TinyURL的短地址服务,让使用者更加方便。 主要功能: 1.本地/远程两种图片上传方式; 2.后台文件管理系统; 3.调整片大小; 4.社交网站分享按钮; 5.TinyURL短地址服务; 6.支持自定义主题模板; 7.多张片同时上传; 8.缩略功能; 9.以及一些基本的功能(例如片大小、数量限制、水印等等)。 所需环境: Apache mod_rewrite 启用 PHP 5.2.0或者更高 MySQL php.ini 中 file_uploads 启用 GD Library 2或者更高 cURL BC Math 程序安装: 1.打开includes/config.php,参照“配置说明”完成设置; 2.打开includes/definitions.php,将changeme修改成其他任意内容; 3.上传目录下的文件; 4.访问程序所在地址,将会自动完成数据库的安装。 配置说明: config.php中的参数内容详细介绍。 theme:模板名称,一般不需要修改 lang:语言,如果需要显示中文请修改成zh-cn auto_lang:自动识别语言,启用为true,关闭为false site_name:网站名称 doctitle:副标题 meta_description:网站描述 meta_keywords:关键词 db_host:MySQL主机地址 db_port:MySQL端口 db_name:数据库名 db_user:数据库用户 db_pass:数据库密码 maintenance:维护模式,启用为true,关闭为false google_analytics_tracking_id:Google Analytics ID minify:CSS、JS优化模式,启用为true,关闭为false private_mode:隐私模式,需要输入密码才可上传片,启用为true,关闭为false user_password:隐私模式密码 admin_folder:后台路径 admin_password:后台密码 api_key:API密钥 api_mode:API模式 storage:储存方式,datefolders:按日期分目录储存(如:/YYYY-MM-DD/file.jpg);direct:直接储存(如:/image/file.jpg) file_naming:片命名,original:保持原名,如果重复则添加随机字符;random:片名随机;mixed:在原名中添加随机字符 folder_images:片储存目录 folder_thumbs:缩略储存目录 virtual_folder_image:虚拟片目录,即展示片页的虚拟路径 virtual_folder_uploaded:多图片上传时显示上传进程的虚拟路径 max_filesize:最大大小 thumb_width:缩略宽,单位:像素 thumb_height:缩略高,单位:像素 min_resize_size:最小调整大小,单位:像素 max_resize_size:最大调整大小,单位:像素 multiupload:多图片上传,启用为true,关闭为false multiupload_limit:多图片上传最大张数 over_resize:扩大片,即在调整片的时候将小片调整为大片,启用为true,关闭为false flood_protection:洪水攻击保护,启用为true,关闭为false flood_report_email:洪水攻击报告邮箱,如果发生洪水攻击则向该邮箱发送邮件报告 max_uploads_per_minute:每分钟最多上传 max_uploads_per_hour:每小时最多上传 max_uploads_per_day:每天最多上传 max_uploads_per_week:每周最多上传 max_uploads_per_month:每月最多上传 error_reporting:DeBug模式,报告错误,启用为true,关闭为false short_url:短地址功能,启用为true,关闭为false short_url_service:短地址服务商,可用:tinyurl、google、isgd、bitly、custom(自定义) custom_short_url_api:自定义短地址服务商API地址 custom_short_url_service:自定义短地址服务商名称 short_url_user:短地址服务商用户名 short_url_keypass:短地址服务商密码 short_url_image:缩短片类型 facebook_app_id:FaceBook应用ID facebook_comments:FaceBook评论应用 watermark_enable:水印功能,启用为true,关闭为false watermark_image:水印所在路径 watermark_position:水印位置,用英语方位名词描述 watermark_margin:水印位置,从片底部算起 watermark_opacity:水印不透明度 root_dir:程序根路径 relative_dir:相对路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值