本文作者:ITDragon龙
原文: http:// cnblogs.com/itdragon/p/ 7864916.html
本章内容通过Nginx 和 FTP 搭建图片服务器。在学习本章内容前,请确保您的Linux 系统已经安装了Nginx和Vsftpd。
Nginx 安装 http://www. cnblogs.com/itdragon/p/ 7850985.html
Vsftpd 安装 http://www. cnblogs.com/itdragon/p/ 7857649.html
本章知识点
效果图:
- 需求:实现图片的上传和批量上传
- 技术:Nginx,Vsftpd,Spring,SpringMVC,KindEditor,CentOS
- 说明:本章节内容主要是实现图片的上传功能。使用 KindEditer 是为了更好的演示图片的上传,回显,批量效果。后台代码与KindEditer没有直接关系,放心阅读。另外源码中有Mybatis的jar,不用理会,本章内容用不到,是为后续内容做准备!
- 源码:见文章底部
- 场景:用户将图片上传到 tomcat 服务器上,再由 tomcat 服务器通过FTP上传到 Nginx 服务器上。
项目结构:
单元测试
首先要攻破核心技术。通过单元测试实现图片上传的功能。
package
说明:这里的ip地址,端口,ftp用户名,密码,本地文件路径,以及Nginx服务器图片路径等,这些字符串参数都要根据自己实际设置的来填写的。如果你的Nginx和Vsftpd安装是按照我提供的链接来做的。那你只需要改ip地址即可。
Maven 的Web 项目
搭建Maven的Web 项目,之前有写过。这里就不过多描述。
项目核心配置文件
首先是 Maven 的核心文件 pom.xml
<project
说明:和文件上传有直接关系的是:
<dependency>
然后是 Web 项目的核心文件 web.xml
<?xml version="1.0" encoding="UTF-8"?>
再是 SpringMVC 配置文件 springmvc.xml,需要添加文件上传解析器
<!-- 定义文件上传解析器 -->
最后是 Ftp 配置文件 resource.properties
FTP_ADDRESS=192.168.0.11
FTP_PORT=21
FTP_USERNAME=ftpuser
FTP_PASSWORD=root
FTP_BASE_PATH=/usr/local/nginx/html/images
IMAGE_BASE_URL=http://192.168.0.11/images
Service 层
上传图片的接口 PictureService.java
package
上传图片接口实现类 PictureServiceImpl.java
package
说明:
- @Value 注解是Spring4 中提供的,@Value("${XXX}")
- 返回值是一个Map,并且key有error,url,message。这是根据KindEditer的语法要求来的。详情见链接。http://kindeditor.net/docs/upload.html
Controller 层
负责页面跳转的 PageController.java
package
负责图片上传的 PictureController.java
package
说明:
- @RestController 也是Spring4 提供的,是 @Controller + @ResponseBody 的组合注解。
- Controller层的返回值是一个json格式的字符串。是考虑到浏览器对json解析兼容性比较好。
Views视图层
负责上传图片的jsp页面 pic-upload.jsp
<%@ page language="java" contentType="text/html; UTF-8" pageEncoding="UTF-8"%>
说明:pic-upload.jsp 分为两个部分,第一个部分是为了测试上传图片功能的form表单。第二个部分是为了更好的体验上传,批量上传,回显功能的KindEditer 富文本编辑器。
总结
- Nginx 搭建服务器的思维
- Java实现 Ftp上传图片的功能
- KindEditer 上传图片的功能
源码: https:// github.com/ITDragonBlog /daydayup/tree/master/Nginx
Nginx 搭建图片服务器到这里就结束了,有什么不足的地方,请赐教。如果觉得不错,可以点个赞哦!