Press "Enter" to skip to content

一款简单、纯粹的图床ImgURL安装维护

ImgURL是一款简单、纯粹的图床程序,使用PHP + SQLite 3开发,不需要复杂的配置,做到开箱即用。

环境要求

PHP >= 5.6
需要exif函数支持
SQLite 3

主要功能

支持拽拖上传,一键生成链接、一键复制
支持限制访客上传数量
图片压缩
图片鉴黄识别

安装

具体过程如下:

1.访问:https://github.com/helloxz/imgurl/archive/master.zip下载最新版ImgURL程序,放到您的站点根目录并解压。
2.访问http(s)://domain.com/install.php根据提示完成安装。



安全设置

1.配置完毕后测试功能没问题,请删除根目录的check.php
2.Apache默认已经通过.htaccess文件来屏蔽数据库下载
3.Nginx用户请在server段内添加如下配置,并重启Nginx
location ~* \.(db3)$ {  
  deny all;  
}

ImgURL升级

查看当前版本号

在后台 - 系统设置 - 关于查看当前版本号。

特别提醒: 升级之前一定要查看自己的版本号,依次进行升级,不要跨版本升级,以免出现问题。升级前务必做好备份。

老版本升级为新版本

2018-04-31之前的均为老版本,升级新版方法如下:

备份upload和temp目录
清空当前目录,下载新版本 master.zip 解压并安装。
将备份好的upload和temp目录拷贝回来进行覆盖

这样能够保证之前的图片继续访问,但是以前的图片无法再进行管理操作。

v1.0升级为v1.1

2018-05-04发布了v1.1版本,可以在后台 - 系统设置 - 关于,查看当前版本。如果您是v1.0版本,请按照此方法升级。

1.备份好当前数据、备份好当前数据、备份好当前数据,比如您当前程序所在目录为test.imgurl.org,可以先将其更名备份。

mv test.imgurl.org test.imgurl.org.bak

2.创建新的目录,并下载v1.1的程序进行解压,流程如下:

#创建目录
mkdir test.imgurl.org
#进入目录
cd test.imgurl.org
#下载imgurl v1.1
wget https://github.com/helloxz/imgurl/archive/v1.1.tar.gz
#解压
tar -zxvf v1.1.tar.gz
#移动文件
mv imgurl-1.1/* ./
#从备份目录拷贝覆盖
cd ..
cp -a test.imgurl.org.bak/config.php test.imgurl.org/
cp -a test.imgurl.org.bak/upload test.imgurl.org/
cp -a test.imgurl.org.bak/temp test.imgurl.org/
cp -a test.imgurl.org.bak/db test.imgurl.org/
#记得重新设置权限
chown -R www:www test.imgurl.org

3.简单点说就是要先备份config.php upload temp db,然后下载v1.1程序,从拷贝原来的这几个目录进行覆盖。

4.最后访问http(s)://domain.com/upgrade.php?v=1.1 升级一下数据库,大功告成!

v1.1升级为v1.2

备份config.php/db/temp/upload
下载v1.2的程序覆盖
再将config.php/db/temp/upload拷贝回来覆盖即可

v1.2升级v1.3

备份config.php/db/temp/upload
下载v1.3的程序解压覆盖
再将config.php/db/temp/upload拷贝回来覆盖即可

使用油猴脚本(Tamper monkey)在任意网页上传图片

安装Tamper monkey扩展

ImgURL脚本可以帮助我们在任意网页将图片上传到ImgURL,不过需要Tamper monkey扩展的支持,可直接访问:Google商店(https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) 安装Tamper monkey并启用(需要自备梯子)

安装ImgURL提供的脚本

启用Tamper monkey扩展后继续访问ImgURL上传脚本(https://greasyfork.org/zh-CN/scripts/372034-imgurl%E4%B8%8A%E4%BC%A0%E8%84%9A%E6%9C%AC) 点击按钮安装并启用脚本

上传图片

脚本安装成功后,不论在何时、何地,甚至不用打开ImgURL官方地址,直接在任意网页右下角会出现一个图片按钮,点击这个按钮即可将本地图片上传到ImgURL或sm.ms。

启用TinyPNG压缩图片

TinyPNG提供了优秀的图片压缩服务,并且提供API支持,普通用户有500次/月的限制,不过ImgURL可以填写多个TinyPNG KEY,让API次数得到叠加以压缩更多图片。

申请TinyPNG API

访问 https://tinypng.com/ 官网注册账号,并获取自己的API KEY

打开config.php填写自己的TinyPNG API key保存即可。(支持异步压缩图片,不影响上传速度),配置文件示例如下:

// TinyPNG压缩图片
$tinypng = array(
"option"    =>  true,
"key"       =>  array(
    "xxx",                //支持填写多行key
    "xxx"                 //如果只有一个key,请删除此行,注意最后一行没有逗号(,)
)
);

启用图片鉴黄识别

ImgURL使用 https://www.moderatecontent.com 提供的API来识别图片,因此您需要先访问Moderate Content并获取API KEY.
修改配置文件
打开config.php,填写自己的Moderate Content KEY

//ModerateContent 图片鉴黄
$ModerateContent = array(
    "option"    =>  true,
    "key"       =>  "xxx"
);
option : 如果为true表示启用Moderate Content鉴黄识别,则必须配置key,如果为false则不启用。
key:您在Moderate Content申请的KEY

注意事项

Moderate Content无法做到100%准确,因此图片不会删除,而是标记为可疑图片等待管理员处理。
不会对管理员上传的图片进行鉴黄识别。
如果是国内主机,请求接口速度较慢,可能会出现失败的情况。

上传测试

开启后上传一张H图测试,如果提示如下说明配置成功。

如果是违规图片,可以在后台可疑图片查看到。

修改上传大小

ImgURL默认限制2M上传大小,您可以通过如下方法修改限制。

打开/functions/upload.php 找到如下代码:

$handle->file_max_size = '2097152';

单位为字节,自行修改即可。为了保证上传稳定性,不建议超过10M

继续打开static/embed.js找到下面这一行进行修改

,size: 2048

ImgURL API 说明

ImgURL v1.3版本开始支持API上传,您可以通过API将图片上传至ImgURL,使用说明如下。

接口说明

说明 上传图片接口
请求方式 POST
限制 游客每天限制上传10张,单张图片不得超过5M
请求地址 https://imgurl.org/functions/api.php

请求参数

参数名称 类型 是否必须 描述
imgfile File 表单名称,上传图片使用,文件类型必须是图片。

请求成功返回的数据

默认情况返回json数据,格式如下:

{"code":1,"id":"102","url":"http:\/\/localhost\/imgurl\/temp\/1809\/62ad5f9f09bddc35.jpg","width":200,"height":200}
名称 类型 示例值 描述
code int 1 返回状态码,1为成功,0为失败。
id int 102 返回图片唯一ID
url String http://localhost/imgurl/temp/1809/62ad5f9f09bddc35.jpg 图片完整地址
width int 200 图片宽度(px),如果为0说明这种图片之前已经上传过。
height int 200 图片高度(px),如果为0说明这种图片之前已经上传过。

请求失败

名称 类型 示例值 描述
code int 0 返回状态码,0为失败。
msg String 请求上限! 返回失败的具体原因。

演示代码

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>ImgURL上传测试</title>
    <meta name="generator" content="EverEdit" />
    <meta name="author" content="" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
</head>
<body>
    <form enctype="multipart/form-data" method="post" action="http://test.imgurl.org/functions/api.php" id="upform">
    <input type="file" name="file" id="file" class="up-file">
    <input type="submit" id="btn" value="开始上传" class="btn">
    </form>
</body>
</html>

其他说明

如果需要直接返回上传后的URL地址,接口地址添加?type=url参数即可。
注:以上文章转自https://www.xiaoz.me

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注