Nginx 搭建图片服务器

作者:ITDragon龙
来源:http://www.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 搭建图片服务器



  • 需求:实现图片的上传和批量上传
  • 技术:Nginx,Vsftpd,Spring,SpringMVC,KindEditor,CentOS
  • 说明:本章节内容主要是实现图片的上传功能。使用 KindEditer 是为了更好的演示图片的上传,回显,批量效果。后台代码与KindEditer没有直接关系,放心阅读。另外源码中有Mybatis的jar,不用理会,本章内容用不到,是为后续内容做准备!
  • 源码:见文章底部
  • 场景:用户将图片上传到 tomcat 服务器上,再由 tomcat 服务器通过FTP上传到 Nginx 服务器上。


Nginx 搭建图片服务器


项目结构:

Nginx 搭建图片服务器


单元测试

首先要攻破核心技术。通过单元测试实现图片上传的功能。

Nginx 搭建图片服务器

说明:这里的ip地址,端口,ftp用户名,密码,本地文件路径,以及Nginx服务器图片路径等,这些字符串参数都要根据自己实际设置的来填写的。如果你的Nginx和Vsftpd安装是按照我提供的链接来做的。那你只需要改ip地址即可。


Maven 的Web 项目

搭建Maven的Web 项目,之前有写过。这里就不过多描述。

项目核心配置文件

首先是 Maven 的核心文件 pom.xml

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

说明:和文件上传有直接关系的是:

<dependency>
<groupid>commons-fileupload/<groupid>
<artifactid>commons-fileupload/<artifactid>
/<dependency>

然后是 Web 项目的核心文件 web.xml

Nginx 搭建图片服务器

再是 SpringMVC 配置文件 springmvc.xml,需要添加文件上传解析器


<bean> class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property>

<property>
/<bean>

最后是 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 com.itdragon.service;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
public interface PictureService {
/**
* 上传,批量上传接口
* @param uploadFile
* @return
*/
Map uploadPicture(MultipartFile uploadFile);
}

上传图片接口实现类 PictureServiceImpl.java

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

Nginx 搭建图片服务器

说明:

  • @Value 注解是Spring4 中提供的,@Value("${XXX}")
  • 返回值是一个Map,并且key有error,url,message。这是根据KindEditer的语法要求来的。详情见链接。http://kindeditor.net/docs/upload.html

Controller 层

负责页面跳转的 PageController.java

Nginx 搭建图片服务器

负责图片上传的 PictureController.java

Nginx 搭建图片服务器

说明:

  • @RestController 也是Spring4 提供的,是 @Controller + @ResponseBody 的组合注解。
  • Controller层的返回值是一个json格式的字符串。是考虑到浏览器对json解析兼容性比较好。

Views视图层

负责上传图片的jsp页面 pic-upload.jsp

Nginx 搭建图片服务器

说明:pic-upload.jsp 分为两个部分,第一个部分是为了测试上传图片功能的form表单。第二个部分是为了更好的体验上传,批量上传,回显功能的KindEditer 富文本编辑器。


总结

  • Nginx 搭建服务器的思维
  • Java实现 Ftp上传图片的功能
  • KindEditer 上传图片的功能

源码:https://github.com/ITDragonBlog/daydayup/tree/master/Nginx

Nginx 搭建图片服务器到这里就结束了,有什么不足的地方,请赐教。如果觉得不错,可以点个赞哦!


分享到:


相關文章: