上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上传模块进行统一管理,同时对于上传不同的类型文件,留有自定义实现机制的接口,也即可扩展. 基于上传模块机制,就可以实现修改头像功能了.同时顺带将修改密码的功能也一起实现,这个修改密码的功能相对就很简单了. 1.可扩展上传模块 统一上传模块的体现就是上传所有类型的文件,都是调用统一的一个接口,即上传接口…
技术选型和整合开发环境 1.技术选型 博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下: SpringBoot版本选择目前较新的2.1.1.RELEASE版本 持久化框架选择Mybatis 页面模板引擎选择Freemarker 前台框架选择Bootstrap 后台框架选择AdminLTE 数据库选择Mysql 数据库版本管理选择Flyway 技术选型概览图,如下: 2.代码分包 首先确定本工程为sw-blog(即:守望博客),基础包名为: com.swnote…
要确定一个系统的需求,首先需要明确该系统的用户有哪些,然后针对每一类用户,确定其需求.对于博客网站来说,用户有3大类,分别是: 作者,也即是注册用户 游客,也即非注册用户 管理员,网站维护人员 那么从这3大类用户的角度分析,来确定博客网站的需求. 1.作者需求 作者是博客网站中最重要的用户,是博客网站内容的直接贡献者,那么从作者的角度来说,需求有: 注册.登录.退出 这是作者进入与离开网站必不可少的功能,同时管理员可以设置是否需要激活账号的功能,如果开启了账号激活功能,那么作者注册成功后,会收到…
发布文章功能里面最重要的就是需要集成富文本编辑器,目前富文本编辑器有很多,例如ueditor,CKEditor.editor.md等.这里守望博客里面是集成的editor.md,因为editor.md是markdown格式,目前markdown由于简洁好用,在各种云笔记.github等中得到了广泛使用. 1.集成editor.md editor.md是在github上开源,开源地址为:https://github.com/pandao/editor.md,下载其发布的最新版本,即: 解压后,将相…
守望博客是支持创建专栏的功能,即可以将一系列相关的文章归档到专栏中,方便用户管理和查阅文章.这里主要讲解专栏的创建.修改和删除功能,至于专栏还涉及其它的功能,例如关注专栏等后续会穿插着介绍. 1.创建专栏 接收和处理专栏相关功能的操作的方法会放在GroupController类中,首先创建专栏的页面为: 这里有两个地方需要特别说明: 第一这个分类数据,此处分类数据正是本博客网站的分类数据,这个分类数据是系统初始化时加入的,这个初始化的功能后续会加入,目前此处就是提前将数据先写入到数据库中,例如本…
由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只能设置一次. 用户注册时只是填写了简单的登录信息,所以用户登录后,可以设置个人详细的信息,也即修改个人信息功能. 1.设置主页标识功能 由于在用户没有设置主页标识时,只要用户一登录就会自动跳转到设置主页标识页面,同时如果没有设置该标识,其它的操作是不能操作的,所以有一个拦截器来实现该功能,即:Log…
文章详情页面是博客系统中最为重要的页面,登录用户与游客都可以浏览文章详情页面,只不过只有登录用户才能进行其它的一些操作,比如评论.点赞和收藏等等. 本次的开发任务只是将文章详情页面展示出来,至于一些收藏.点赞.评论以及统计相关的功能后续慢慢加上. 1.后台核心代码 加载出文章的详情页面的核心代码如下: /** * 加载出文章详情页面 * * @param articleId * @param model * @param session * @return */ @RequestMapping(…
对于程序中一些字典信息.配置信息应该在程序启动时加载到缓存中,用时先到缓存中取,如果没有命中,再到数据库中获取同时放到缓存中,这样做可以减轻数据库层的压力.目前暂时先整合ehcache缓存,同时预留了集成redis和memcached的接口. 先开发两个最基本的功能,就是注册和登录,对于页面几乎就是直接用bootstrap的风格,目前没有过多的设计. 1.整合ehcache 在spring boot中整合ehcache还是很方便的,首先添加依赖: <dependency> <groupI…
在上一章节中<技术选型和整合开发环境>,确定了开发的技术,但是如果直接这样用的话,可能开发效率会不高,为了提高开发的效率,这里再整合lombok和mybatis-plus两个组件. 1.lombok 以前在Github上看到过lombok,但是也没有进一步了解它的作用.前几天用了一下,感觉代码清爽多了,确时觉得利用lombok可以简化代码提高开发效率的. lombok的官网为https://projectlombok.org/,官网上对它介绍如下: Project Lombok is a ja…
显示文章列表一般都是采用分页显示,比如每页10篇文章显示.这样就不用每次就将所有的文章查询出来,而且当文章数量特别多的时候,如果一次性查询出来很容易出现OOM异常. 后台的分页插件采用的是mybatis-plus自带的,前端显示时利用boostrap的风格显示. 1.开启分页插件 对于mybatis-plus框架,开启分页插件是很简单的,只需要加一个配置类,即: /** * Mybatis Plus分页配置类 * * @author lzj * @since 1.0 * @date [2019-…
时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Docker环境 1.服务器安装Docker 安装命令: yum install –y docker 显示Complate表示安装完成 使用命令: docker version,查看是否安装完成. 由于docker是C/S模式,因此需要启动docker服务. 使用命令: service docker st…
在基于SqlSugar的开发框架的服务层中处理文件上传的时候,我们一般有两种处理方式,一种是常规的把文件存储在本地文件系统中,一种是通过FTP方式存储到指定的FTP服务器上.这种处理应该由程序进行配置,决定使用那种方式,那么这里面我们为了弹性化处理, 在文件上传模块中采用选项模式[Options]处理常规上传和FTP文件上传的配置参数信息. 微软引入选项模式,它是用于配置框架服务使用的设置. 选项模式由Microsoft.Extensions.OptionsNuGet包实现,除了ASP.NET…
1.首先检查LAMP环境 [root@cairui htdocs]# ps -ef | grep httpd php Mar03 ? :: /opt/apache2.2.34/bin/httpd -k start root Mar03 ? :: /opt/apache2.2.34/bin/httpd -k graceful php Mar03 ? :: /opt/apache2.2.34/bin/httpd -k graceful php Mar03 ? :: /opt/apache2.2.34…
Laravel5.1文件上传单元测试 作者:ZGJ 在软工第三阶段中,我彻底解决了上一阶段一直困扰我的文件上传单元测试问题,在这里做一个总结. 注:下文介绍中,方法一方法二实现简单但有一定的限制条件(也正因为如此我上一阶段中一直未能实现文件上传的单元测试),方法三即这一阶段摸索出来的方法,普遍性更高. 以下为正文: 方法一:伪造存储 具体见这篇博客: 限制条件为laravel版本5.4以上: 方法二:表单交互 具体见这篇博客: 限制条件为文件输入的前端元素必须包含于form表单中,否则测试报错:…
博客生成之后,按照网上别人的教程,讲项目部署到github上,修改_config.yaml中的deploy部分如下所示: deploy: type: git repository: https://github.com/nummy/nummy.github.io.git branch: master 执行hexo deploy报错: error: The requested URL returned error: Forbidden while accessing https://github.…
1. 背景 写博客有一个自己的图床是不错的选择,如果不借助工具,在markdown博客中添加图片的步骤如下: 截取图片,保存到本地(得来回点对话框,选择保存路径,选择文件类型,输入文件名). 上传到图床服务器(打开网页,跳转到上传页面,点击browse,选择本地文件,upload...) 获取图片链接(为了确保无误,可以在浏览器中打开图片,并复制link) 将链接添加到markdown博客中(Ctrl+v 复制到博客中) 还是很繁琐的,那么可不可以自己实现一个工具来做这些繁琐的事情呢? 2. 分…
打造一个上传图片到图床利器的插件(Mac版 开源)(2018-06-24 19:44) 更新于2018年2月 做了以下改动: 1.修复了一个bug,把服务器区域做成可配: 七牛有华北,华东,华南以及美国三个服务器区域,根据自己的情况进行相应的选择即可. 2.把插件打包进了exe安装包中,下载链接: 链接: 密码: 1749 因此不要再使用本文的替换方法进行安装了,直接安装即可,七牛插件是默认安装的. 对应文章更新: 重新打包用户量过亿的开源截图软件--加入图片自动上传到图床的功能(2018-02…
参考: http://blog.csdn.net/ck_boss/article/details/27866117 一.mysql配置 1.安装mysql yum install mysql-server  CentOS中已经默认安装,此步骤忽略. 2.启动mysql service mysqld start 3.登录mysql [root@jediael44 share]# mysql -u -root -p Enter password: Welcome to the MySQL monit…
参考: http://blog.csdn.net/ck_boss/article/details/27866117 一.mysql配置 1.安装mysql yum install mysql-server  CentOS中已经默认安装,此步骤忽略. 2.启动mysql service mysqld start 3.登录mysql [root@jediael44 share]# mysql -u -root -p Enter password: Welcome to the MySQL monit…
头像预览 $("#avatar_file").change(function(){ // 获取上传的文件对象 var file=$(this)[0].files[0]; // 读取文件的URL // 创建阅读器 var reader=new FileReader(); // 读取file的URL reader.readAsDataURL(file); // 监听读取,onload在读完之后触发事件(是给DOM对象绑定事件) reader.onload=function() { // t…
在项目目录下新建一个 ‘uploads’文件夹以保存上传的文件 配置setting.py文件 MEDIA_URL = '/uploads/' MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') #设置上传的绝对路径 配置urls.py文件,设置路由 from django.conf.urls import url,include from django.contrib import admin from django.conf import settin…
前言 博客地址 - https://billie52707.cn 1. 建博客的初衷? 2020那一年,八月的第一天,我还是像往常一样打开我的域名网站,本以为还是会像以前一样显示每日一图的界面,结果出现的却是破图,当即开始打开服务器进行一番检查,发现是一直在使用的词霸API接口挂掉了(结果两天后又恢复正常了),这样一来就意味着我的域名现在闲下来了 这时候,一个想法闪过我的脑海 ---- 是时候开始做自己的博客网站了! 在这之前,由于平时比较忙,并且搭建博客需要投入一定的精力,加上已经有现成的博客…
前言 此项目是用于构建博客网站的,由三部分组成,包含前台展示.管理后台和后端. 此项目是基于 react + node + express + ant + mongodb 的,项目已经开源,项目地址在 github 上,喜欢的,欢迎给个 star . 项目地址: 前台展示: https://github.com/biaochenxuying/blog-react 管理后台:https://github.com/biaochenxuying/blog-react-admin 后端:https://…
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的.用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客. WordPress有许多第三方开发的免费模板,安装方式简单易用.不过要做一个自己的模板,则需要你有一定的专业知识.比如你至少要…
原文链接 : http://www.bugclosed.com/post/14 从零搭建个人博客网站需要包括云服务器(虚拟主机),域名,程序环境,博客程序等方面.本博客 就是通过这几个环节建立起来的,下面总结梳理一下环节的具体过程. 云服务器 博客程序需要有一个服务器部署和运行,所以首先需要选购一个云服务器.阿里云是国内最大的云厂商,简单起见直接选购阿里云的入门级ECS(1核,1G内存,1M固定带宽,20G SSD磁盘).初始化主机选择centos7.2系统,可同时在后台初始化的时候设置好roo…
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的.用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客. WordPress有许多第三方开发的免费模板,安装方式简单易用.不过要做一个自己的模板,则需要你有一定的专业知识.比如你至少要…
基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有的文章对象: def index(request): if request.method == 'GET': all_article = models.Article.objects.all().order_by('id').reverse() all_type = models.ArticleTy…
基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没有保存到session中,今天先完善一下 在用户登录时,先设置了一下session request.session['is_login'] = True request.session['email'] = value_dict['email'] request.session['username'…
基于django的个人博客网站建立(一) 前言 网站效果可点击这里访问 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网上找到了几个模板,感觉还不错,于是想把它用django做后台,做个简单的个人网站玩玩,于是行动开始. 这是模板的样子: 具体内容 首先当然是创建项目了 目录结构是这样的 创建了一个blogapp用来做前端展示,backendapp做后台,后台主要就是发布下博客,改改其他内容啥的,其他功能以后慢慢加…
基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: <link href="http://cdn.bootcss.com/highlight.js/9.12.0/styles/googlecode.min.css" rel="stylesheet"> <script src="http://c…