V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xiaoz
V2EX  ›  分享创造

又写了个简单的图床,欢迎使用(附源码)

  •  1
     
  •   xiaoz ·
    helloxz · 2016-09-30 13:49:07 +08:00 · 9606 次点击
    这是一个创建于 2767 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小 z 图床

    之前用贴图库 API 写的图床请访问:https://www.v2ex.com/t/234880,由于最近贴图库对相关政策做了调整,导致免费用户只能保存最近 6 个月的图片,于是干脆把代码修改了下,将图片保存在自己本地服务器。


    相关说明

    • 后端使用 PHP 开发,仅一个单文件upload.php,代码非常的简单,也只有纯粹的图片上传功能
    • 使用 Ajax 异步上传,因此您不用每次都去刷新页面
    • 上传成功后会自动生成 HTML 和 Markdown 链接,方便使用

    使用说明

    1. 直接将源码放到您站点的某个目录
    2. 修改一下upload.php这个文件,在 53 行附近,填写您自己的域名
    3. 最后访问您的域名测试

    其他说明

    演示图片:

    第 1 条附言  ·  2017-03-17 07:48:14 +08:00
    新的演示地址:https://i.bk.tn/
    37 条回复    2017-09-05 19:09:12 +08:00
    Satan4869
        1
    Satan4869  
       2016-09-30 14:30:09 +08:00 via iPhone   ❤️ 1
    能加个七牛的上传功能吗?
    xiaoz
        2
    xiaoz  
    OP
       2016-09-30 14:52:53 +08:00
    @Satan4869 可以通过七牛的镜像存储功能,自动将图片镜像到七牛,在 upload.php 填写七牛的地址就可以了。
    quietjosen
        3
    quietjosen  
       2016-09-30 15:15:00 +08:00 via iPhone
    图床生生不息啊,最近 V 站都有好几个图床服务了。
    Satan4869
        4
    Satan4869  
       2016-09-30 15:28:02 +08:00   ❤️ 1
    @xiaoz 没有那么简单吧? AK SK 这些不用加进去吗?
    Tink
        5
    Tink  
       2016-09-30 15:29:15 +08:00
    要是能支持新浪微薄就好了
    xiaoz
        6
    xiaoz  
    OP
       2016-09-30 15:32:12 +08:00 via iPhone
    @Tink 可惜微博图床没有提供 api
    xiaoz
        7
    xiaoz  
    OP
       2016-09-30 15:33:26 +08:00 via iPhone
    @Satan4869 镜像功能不需要的,下次我把文档完善下。
    Tink
        8
    Tink  
       2016-09-30 15:35:57 +08:00
    @xiaoz 貌似有从手机版微博里提取出来的
    Tink
        9
    Tink  
       2016-09-30 15:36:41 +08:00   ❤️ 1
    Tink
        10
    Tink  
       2016-09-30 15:37:52 +08:00   ❤️ 1
    xiaoz
        11
    xiaoz  
    OP
       2016-09-30 15:57:54 +08:00
    @Tink 我还以为没有 API 呢, thanks
    crab
        12
    crab  
       2016-09-30 16:25:47 +08:00   ❤️ 1
    文件类型前端判断,目录没限制执行权限。
    mhcyong
        13
    mhcyong  
       2016-09-30 16:32:05 +08:00 via iPhone
    能整合成 WordPress 图床插件吗?
    xiaoz
        14
    xiaoz  
    OP
       2016-09-30 18:59:58 +08:00 via iPhone
    @crab 后端也有判断文件类型,目录执行权限我改进一下,多谢。
    xiaoz
        15
    xiaoz  
    OP
       2016-09-30 19:01:08 +08:00 via iPhone
    @mhcyong wp 本身就有很多图床插件了
    xiaoz
        16
    xiaoz  
    OP
       2016-09-30 19:09:55 +08:00
    @crab 已经限制 php 执行权限了,我纳闷 0422239577.php 你是怎样上传上去的,我记得后端也有验证文件类型。
    wuhanpizi
        17
    wuhanpizi  
       2016-09-30 22:26:15 +08:00 via Android
    测试看看,感谢楼主
    mingyun
        18
    mingyun  
       2016-09-30 23:18:08 +08:00   ❤️ 1
    我习惯在 echo json_encode($re_data);后 die();
    ichou
        19
    ichou  
       2016-09-30 23:25:56 +08:00   ❤️ 1
    if 后面有的有空格,有的没有,有的 { 换行 有的不换
    楼主的代码风格还可以精进,可以看看 PSR
    ichou
        20
    ichou  
       2016-09-30 23:28:10 +08:00   ❤️ 1
    @mingyun echo + die 可以简写成 die(json_encode($re_data));
    guonning
        21
    guonning  
       2016-09-30 23:34:22 +08:00 via Android
    就喜欢存在本地的
    a570295535
        22
    a570295535  
       2016-09-30 23:34:34 +08:00
    现在的个人图床都不靠谱啊,没多久就消失了,
    用了之后,未来尽情后悔,
    在图床传一份还要自己备份一份,没意义啊
    还是新浪微博图库靠谱点啊
    xiaoz
        23
    xiaoz  
    OP
       2016-09-30 23:34:35 +08:00
    @ichou 谢谢指导,我不是专业开发,好久没写代码了,看来还得多学习学习。
    xiaoz
        24
    xiaoz  
    OP
       2016-09-30 23:36:23 +08:00
    @a570295535 的确如您所说,大公司的相对靠谱。主要还是自用,如果其他用户有需要也可以自己搭建。
    xiaozi
        25
    xiaozi  
       2016-10-01 01:27:24 +08:00   ❤️ 1
    孩子,你太天真了;

    https://img.bsdev.cn/uploads/1610/0125024652.txt
    https://img.bsdev.cn/uploads/1610/0124097859.php

    你从 POST 过来的数据里面取 MIME; 这跟没限制类型有什么区别。

    curl -H "Content-Type: multipart/form-data" --form "[email protected];type=image/png;filename=../../222.txt" https://img.bsdev.cn/upload.php
    xiaozi
        26
    xiaozi  
       2016-10-01 01:28:57 +08:00   ❤️ 3
    额,顺便可以记得判断下 MAGIC BYTES

    http://tool.lu/magicbytes
    xiaoz
        27
    xiaoz  
    OP
       2016-10-01 11:38:18 +08:00
    @xiaozi 感谢您的建议,目前已经修正了对文件类型的判断。
    Myflos
        28
    Myflos  
       2016-10-08 16:44:22 +08:00   ❤️ 1
    @xiaoz 加个一键复制按钮
    xiaoz
        29
    xiaoz  
    OP
       2016-10-08 17:02:11 +08:00
    @Myflos 好的,感谢建议。我晚上的时候改下代码,把复制按钮加上去。
    xiaoz
        30
    xiaoz  
    OP
       2016-10-09 19:33:57 +08:00
    @Myflos 已经加上一键复制按钮了,请测试。
    50vip
        31
    50vip  
       2016-10-10 18:24:15 +08:00
    首先要说的就是,可以通过遍历目录获得别人所有人上传的图片~
    xiaoz
        32
    xiaoz  
    OP
       2016-10-10 18:43:41 +08:00
    @50vip 这个并没有限制,既然是公共图床,那么图片自然是公开的,若有违规的图片发现后会被删除,感谢支持。
    qidouhai
        33
    qidouhai  
       2016-10-16 09:54:08 +08:00
    @xiaozi 呦 这不是 n 年前某群的天子吗?
    BrightDawn
        34
    BrightDawn  
       2016-10-27 11:05:47 +08:00
    @qidouhai 有故事?
    xustrive
        35
    xustrive  
       2016-12-29 16:42:30 +08:00
    @xiaoz 能不能批量上传呢?
    xiaoz
        36
    xiaoz  
    OP
       2016-12-29 17:20:10 +08:00
    @xustrive 抱歉,暂时不支持批量上传。
    vazo
        37
    vazo  
       2017-09-05 19:09:12 +08:00
    不支持修改图片文件保存到上级目录文件么。例如主文件在 a.com/222/333 里面的话,修改文件路径为 a.com/tupian/,无法上传文件昵
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3583 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:25 · PVG 12:25 · LAX 21:25 · JFK 00:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.