nginxhdfs搭建图片服务器(日本nginx软件)

nginxhdfs搭建图片服务器(日本nginx软件)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-04-05
文章简介

需求:实现图片的上传和批量上传技术:nginx,vsftpd,spring,springmvc,kindeditor,centos说明:本章节内容主要是实现图片的上传功能。使用kindediter是为

2025阿里云双十一服务器活动

需求:实现图片的上传和批量上传

技术:nginx,vsftpd,spring,springmvc,kindeditor,centos

说明:本章节内容主要是实现图片的上传功能。使用kindediter是为了更好的演示图片的上传,回显,批量效果。后台代码与kindediter没有直接关系,放心阅读。另外源码中有mybatis的jar,不用理会,本章内容用不到,是为后续内容做准备!

场景:用户将图片上传到tomcat服务器上,再由tomcat服务器通过ftp上传到nginx服务器上。

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

packagecom.itdragon.test;

importjava.io.fileinputstream;

importorg.apache.commons.net.ftp.ftp;

importorg.apache.commons.net.ftp.ftpclient;

publicclasspictureftptest{

publicvoidtestftpclient()throwsexception{

//1.创建一个ftpclient对象

ftpclientftpclient=newftpclient();

ftpclient.connect("192.168.0.11",21);

ftpclient.login("ftpuser","root");

fileinputstreaminputstream=newfileinputstream(newfile("f:\hello.png"));

ftpclient.changeworkingdirectory("/usr/local/nginx/html/images");

//6.修改上传文件的格式为二进制

ftpclient.setfiletype(ftp.binary_file_type);

//7.服务器存储文件,第一个参数是存储在服务器的文件名,第二个参数是文件流

ftpclient.storefile("hello.jpg",inputstream);

}

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

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

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

<projectxmlns="http://maven.apache.org/pom/4.0.0"xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"

xsi:schemalocation="http://maven.apache.org/pom/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelversion>4.0.0</modelversion>

<groupid>com.itdragon.upload</groupid>

<artifactid>pictrue-service</artifactid>

<version>0.0.1-snapshot</version>

<packaging>war</packaging>

<!--集中定义依赖版本号-->

<junit.version>4.12</junit.version>

<spring.version>4.1.3.release</spring.version>

<mybatis.version>3.2.8</mybatis.version>

<mybatis.spring.version>1.2.2</mybatis.spring.version>

<mybatis.paginator.version>1.2.15</mybatis.paginator.version>

<mysql.version>5.1.6</mysql.version>

<slf4j.version>1.6.4</slf4j.version>

<jackson.version>2.4.2</jackson.version>

<druid.version>1.0.9</druid.version>

<httpclient.version>4.3.5</httpclient.version>

<jstl.version>1.2</jstl.version>

<servlet-api.version>2.5</servlet-api.version>

<jsp-api.version>2.0</jsp-api.version>

<joda-time.version>2.5</joda-time.version>

<commons-lang3.version>3.3.2</commons-lang3.version>

<commons-io.version>1.3.2</commons-io.version>

<commons-net.version>3.3</commons-net.version>

<pagehelper.version>3.4.2</pagehelper.version>

<jsqlparser.version>0.9.1</jsqlparser.version>

<commons-fileupload.version>1.3.1</commons-fileupload.version>

<jedis.version>2.7.2</jedis.version>

<solrj.version>4.10.3</solrj.version>

<!--时间操作组件-->

<groupid>joda-time</groupid>

<artifactid>joda-time</artifactid>

<version>${joda-time.version}</version>

<!--apache工具组件-->

<groupid>org.apache.commons</groupid>

<artifactid>commons-lang3</artifactid>

<version>${commons-lang3.version}</version>

<groupid>org.apache.commons</groupid>

<artifactid>commons-io</artifactid>

<version>${commons-io.version}</version>

<groupid>commons-net</groupid>

<artifactid>commons-net</artifactid>

<version>${commons-net.version}</version>

<!--jacksonjson处理工具包-->

<groupid>com.fasterxml.jackson.core</groupid>

<artifactid>jackson-databind</artifactid>

<version>${jackson.version}</version>

<groupid>org.apache.httpcomponents</groupid>

<artifactid>httpclient</artifactid>

<version>${httpclient.version}</version>

<groupid>junit</groupid>

<artifactid>junit</artifactid>

<version>${junit.version}</version>

<scope>test</scope>

<groupid>org.slf4j</groupid>

<artifactid>slf4j-log4j12</artifactid>

<version>${slf4j.version}</version>

<groupid>org.mybatis</groupid>

<artifactid>mybatis</artifactid>

<version>${mybatis.version}</version>

<groupid>org.mybatis</groupid>

<artifactid>mybatis-spring</artifactid>

<version>${mybatis.spring.version}</version>

<groupid>com.github.miemiedev</groupid>

<artifactid>mybatis-paginator</artifactid>

<version>${mybatis.paginator.version}</version>

<groupid>com.github.pagehelper</groupid>

<artifactid>pagehelper</artifactid>

<version>${pagehelper.version}</version>

<groupid>mysql</groupid>

<artifactid>mysql-connector-java</artifactid>

<version>${mysql.version}</version>

<groupid>com.alibaba</groupid>

<artifactid>druid</artifactid>

<version>${druid.version}</version>

<groupid>org.springframework</groupid>

<artifactid>spring-context</artifactid>

<version>${spring.version}</version>

<groupid>org.springframework</groupid>

<artifactid>spring-beans</artifactid>

<version>${spring.version}</version>

<groupid>org.springframework</groupid>

<artifactid>spring-webmvc</artifactid>

<version>${spring.version}</version>

<groupid>org.springframework</groupid>

<artifactid>spring-jdbc</artifactid>

<version>${spring.version}</version>

<groupid>org.springframework</groupid>

<artifactid>spring-aspects</artifactid>

<version>${spring.version}</version>

<groupid>jstl</groupid>

<artifactid>jstl</artifactid>

<version>${jstl.version}</version>

<groupid>javax.servlet</groupid>

<artifactid>servlet-api</artifactid>

<version>${servlet-api.version}</version>

nginxhdfs搭建图片服务器,日本nginx软件

<groupid>javax.servlet</groupid>

<artifactid>jsp-api</artifactid>

<version>${jsp-api.version}</version>

<scope>provided</scope>

<!--文件上传组件-->

<groupid>commons-fileupload</groupid>

<artifactid>commons-fileupload</artifactid>

<version>${commons-fileupload.version}</version>

<groupid>redis.clients</groupid>

<artifactid>jedis</artifactid>

<version>${jedis.version}</version>

<groupid>org.apache.solr</groupid>

<artifactid>solr-solrj</artifactid>

<version>${solrj.version}</version>

<finalname>${project.artifactid}</finalname>

<!--资源文件拷贝插件-->

<groupid>org.apache.maven.plugins</groupid>

<artifactid>maven-resources-plugin</artifactid>

<version>2.7</version>

<encoding>utf-8</encoding>

<!--java编译插件-->

<groupid>org.apache.maven.plugins</groupid>

<artifactid>maven-compiler-plugin</artifactid>

<version>3.2</version>

<source>1.7</source>

<target>1.7</target>

<encoding>utf-8</encoding>

<!--配置tomcat插件-->

<groupid>org.apache.tomcat.maven</groupid>

<artifactid>tomcat7-maven-plugin</artifactid>

<version>2.2</version>

</pluginmanagement>

</project>

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

<groupid>commons-fileupload</groupid>

<artifactid>commons-fileupload</artifactid>

</dependency>

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

<?xmlversion="1.0"encoding="utf-8"?>

<web-appxmlns:xsi="http://www.w3.org/2001/xmlschema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemalocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

id="taotao"version="2.5">

<display-name>pictrue-service</display-name>

<!--加载spring容器-->

<param-name>contextconfiglocation</param-name>

<param-value>classpath:spring/applicationcontext-*.xml</param-value>

<listener-class>org.springframework.web.context.contextloaderlistener</listener-class>

<!--解决post乱码-->

<filter-name>characterencodingfilter</filter-name>

<filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

<filter-name>characterencodingfilter</filter-name>

mapuploadpicture(multipartfileuploadfile);

}

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

packagecom.itdragon.service.impl;

importjava.io.ioexception;

importjava.io.inputstream;

importorg.apache.commons.net.ftp.ftp;

importorg.apache.commons.net.ftp.ftpclient;

importorg.apache.commons.net.ftp.ftpreply;

importorg.springframework.beans.factory.annotation.value;

importorg.springframework.stereotype.service;

importorg.springframework.web.multipart.multipartfile;

importcom.itdragon.service.pictureservice;

@suppresswarnings(

说明:

①@value注解是spring4中提供的,@value("${xxx}")

②返回值是一个map,并且key有error,url,message。这是根据kindediter的语法要求来的。

负责页面跳转的pagecontroller.java

packagecom.itdragon.controller;

importorg.springframework.stereotype.controller;

importorg.springframework.web.bind.annotation.pathvariable;

importorg.springframework.web.bind.annotation.requestmapping;

publicclasspagecontroller{

@requestmapping("/{page}")

publicstringshowpage(@pathvariablestringpage){

system.out.println("page:"+page);

}

负责图片上传的picturecontroller.java

packagecom.itdragon.controller;

importorg.springframework.beans.factory.annotation.autowired;

importorg.springframework.web.bind.annotation.requestmapping;

importorg.springframework.web.bind.annotation.requestparam;

importorg.springframework.web.bind.annotation.restcontroller;

importorg.springframework.web.multipart.multipartfile;

importcom.fasterxml.jackson.core.jsonprocessingexception;

importcom.fasterxml.jackson.databind.objectmapper;

importcom.itdragon.service.pictureservice;

publicclasspicturecontroller{

privatepictureservicepictureservice;

@requestmapping("pic/upload")

publicstringpictureupload(@requestparam(value="fileupload")multipartfileuploadfile){

mapresult=pictureservice.uploadpicture(uploadfile);

//浏览器擅长处理json格式的字符串,为了减少因为浏览器内核不同导致的bug,建议用json

json=newobjectmapper().writevalueasstring(result);

}catch(jsonprocessingexceptione){

①@restcontroller也是spring4提供的,是@controller+@responsebody的组合注解。

②controller层的返回值是一个json格式的字符串。是考虑到浏览器对json解析兼容性比较好。

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

<%@pagelanguage="java"contenttype="text/html;utf-8"pageencoding="utf-8"%>

<metahttp-equiv="content-type"content="text/html;charset=utf-8">

<title>itdragon图片上传</title>

<linkhref="https://www.fruan.com/js/kindeditor-4.1.10/themes/default/default.css"rel="externalnofollow"type="text/css"rel="stylesheet">

<scripttype="text/javascript"src="https://www.fruan.com/post/js/jquery.min.js"></script>

<scripttype="text/javascript"charset="utf-8"src="https://www.fruan.com/js/kindeditor-4.1.10/kindeditor-all-min.js"></script>

<scripttype="text/javascript"charset="utf-8"src="https://www.fruan.com/js/kindeditor-4.1.10/lang/zh_cn.js"></script>

<h3>测试上传图片功能接口的form表单</h3>

<formaction="pic/upload"method="post"enctype="multipart/form-data">

<inputtype="file"name="fileupload"/>

<inputtype="submit"value="上传文件"/>

<h3>借用kindeditor富文本编辑器实现批量上传图片</h3>

<textareaid="kindeditordesc"style="width:800px;height:300px;visibility:hidden;"></textarea>

<scripttype="text/javascript">

kindeditor.create("#kindeditordesc",{

//name值,必须和controller的参数对应,不然会提示400的错误

filepostname:"fileupload",

uploadjson:'/pic/upload',

//设置上传类型,分别为image、flash、media、file

</html>

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

以上就是Nginx怎么搭建图片服务器的详细内容,更多请关注主机测评网其它相关文章!

标签:
搬瓦工低价套餐(瓦工贴砖收费项目)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!