Skip to content
forked from adlered/Picuang

📌 本地存储图床,使用SpringBoot开发,RESTful前后端分离,面向用户的网络图床服务。📦 免费用于自用、商用图床,自由修改 | 📄 中文文档,配置简单,不依赖数据库 | 📝 URL图片转存功能 | 📈 历史记录功能 | 🍱 支持选择、拖拽、粘贴上传 | ⚗️ 自动生成img标签、Markdown标签 | 🔒 上传频率限制

License

Notifications You must be signed in to change notification settings

echo-hhj/Picuang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Picuang

📌 本地图床,使用SpringBoot开发,面向用户的网络图床服务。https://pic.stackoverflow.wiki

🔧 如果你遇到任何问题,都可以通过我个人签名中的联系方式与我沟通!

🔖 Picuang使用Apache 2.0协议,您可以自由进行个人/商业使用,但因各种原因造成的后果雨我无瓜请自行承担。

原理

Picuang是一款根图床WEB程序。用户可以向Picuang中上传jpg/jpeg/png/svg/gif/bmp/ico/tiff图片,Picuang会自动将图片上传至Picuang的运行目录中。

Picuang会将用户上传的图片保存到本地,而非将图片上传到其它公共容器中(例如七牛、新浪什么的),适用于想搭建一个提供图床存储、读取服务的同学

功能

  • 选择、拖拽或粘贴图片,自动上传至Picuang服务器中

  • 自动生成图片对应的URL格式链接HTML标签格式链接Markdown格式链接

  • 图片链接克隆(转存)功能,可输入图片的URL,Picuang会自动下载并保存到Picuang服务器中

  • 单IP上传自动阻流器,上传过快会排队上传,减轻服务器压力,防止恶意上传/克隆攻击

  • 历史记录功能(按IP地址读取,所以更换IP地址后无法查询)

  • Picuang管理员后台设置界面(基于配置文件存储,不依赖数据库)

  • 仅管理员可上传功能(默认关闭,必须在后台登录后才能上传)

🌐 使用技术

开发: Intellij IDEA

后端: Thymeleaf Spring Boot

前端: JQuery Bootstrap Axios

🔍 体验 && 体验GIF

可以来这里直接体验哦~

管理界面:

支持热重载,丰富的自定义功能

屏幕快照 2019-11-24 下午10.58.27.png

主界面:

屏幕快照 2019-11-24 下午10.58.31.png

历史记录:

时间线式展示,清晰明了全面

屏幕快照 2019-11-24 下午10.59.55.png

GIF加载较慢,你也可以访问这里查看(该图片也采用了我自搭建的公共Picuang图床存储)

picuangdemo.gif

📄 使用方法

Picuang不需要配置数据库,如果你使用IDEA直接运行本项目或是用Maven打包为war包,它会自动将图片上传到网站根目录中的uploadImages目录中。你可以在UploadController.java中找到适配代码:

String path = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "static/uploadImages/";

Picuang读取了当前网站的根目录。由于项目使用了Thymeleaf,所以static是存储静态资源的根目录。

打包为war

image.png

➕ 调整上传文件大小限制

在使用前,你可以在application.properties文件中调整文件的限制:

#重要!Picuang图床设置
//单个文件传输文件大小限制
spring.servlet.multipart.max-file-size=20MB
//单次传输文件大小限制
spring.servlet.multipart.max-request-size=20MB
#Picuang图床设置结束

同时,你设置的限制大小会自动同步到前端的标题当中,用户可以直观地看到文件上传的大小限制。

🚨 注意事项

如果你使用了Tomcat 或 Tomcat和Nginx搭载了Picuang,你可能会遇到上传失败的情况。请按照下方的几个解决办法尝试:

  1. Tomcat:context.xml

修改conf/context.xml文件,在</Context>之前添加一行:

<Resources cachingAllowed="true" cacheMaxSize="100000" />
  1. Tomcat:server.xml

修改conf/server.xml文件,在你使用端口的Connector配置中添加一条:

maxPostSize="209715200"
  1. Nginx

在你的location / {下添加一行:

client_max_body_size 100m;

About

📌 本地存储图床,使用SpringBoot开发,RESTful前后端分离,面向用户的网络图床服务。📦 免费用于自用、商用图床,自由修改 | 📄 中文文档,配置简单,不依赖数据库 | 📝 URL图片转存功能 | 📈 历史记录功能 | 🍱 支持选择、拖拽、粘贴上传 | ⚗️ 自动生成img标签、Markdown标签 | 🔒 上传频率限制

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%