Nginx+vsftpd图片服务器,通过Springmvc实现图片上传和图片url获取

本文档介绍了如何搭建一个Nginx+vsftpd图片服务器,Nginx用于HTTP服务,vsftpd提供图片上传功能。通过Springmvc实现在浏览器端上传图片并获取UUID命名的图片URL,详细步骤包括vsftpd和Nginx的安装配置,以及Java FTPClient的上传测试。
摘要由CSDN通过智能技术生成

搭建一个Nginx+vsftpd图片服务器,通过Nginx提供http服务,对图片url进行访问。vsftpd提供上传图片功能。 实现浏览器端上传图片,使用springmvc并得到图片的url(使用UUID生成随机图片名,防止重名),在浏览器访问图片url,展示图片。

1. Vsftpd 简介与安装

vsftpd是linux类操作系统上运行的ftp服务器软件,提供了ftp传输协议,可用于文件的上传、下载。可用apache的工具包commons.net提供的FTPclient客户端对文件进行上传下载。

支持在线安装。安装参考https://blog.csdn.net/Monstar_hu/article/details/80459468

vsftpd 注意的点:我在linux上添加了一个用户,ftpuser,需要增加ftpuser对于/home/ftpuser的权限,否则无法在客户端创建文件,并实现基于日期保存较多的图片。

chown -R ftpuser:ftpuser /home/ftpuser

2. Nginx简介与安装

Nginx是一款轻量级的Http服务器和方向代理服务器,可实现反向代理和负载均衡。

Nginx 参考https://blog.csdn.net/yougoule/article/details/78186138,我不是参考此篇文章,但步骤都一样。默认端口是80,能出现如下画面,即安装成功。

Nginx安装成功画面:

3. ftp上传文件测试

可以用FileZilla和java代码测试上传图片

FileZilla登录后能看到如下界面,并可拖动上传图片,表示vsftpd安装成功。

用Java代码测试,使用Apache的工具包commons.net,版本3.5。里面包含FTPClient类,可实现ftp的上传。

import java.io.File;
import java.io.FileInputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.junit.Test;

public class FtpTest {
	@Test
	public void testFtp() throws Exception {
		//1、连接ftp服务器
		FTPClient ftpClient = new FTPClient();
		ftpClient.connect("192.168.235.101", 21);
		//2、登录ftp服务器
		ftpClient.login("ftpuser", "ftpuser");
		//3、读取本地文件
		FileInputStream inputStream = new FileInputStream(new File("E:\\ftptest\\ftptest1.jpg"));
		//4、上传文件
		//1)指定上传目录
		ftpClient.changeWorkingDirectory("/home/ftpuser/ftpexample/images");
		//2)指定文件类型
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
		//第一个参数:文件在远程服务器的名称
		//第二个参数:文件流
		ftpClient.storeFile("ftptest1.jpg", inputStream);
		//5、退出登录
		ftpClient.logout();
	}
}

上传成功

4. Nginx实现对图片的访问和回显测试

先对Nginx的配置文件进行配置,指定Nginx的root目录。vim /usr/local/nginx/nginx.conf对nginx.conf进行编辑。修改root目录。

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/ftpuser/ftpexample;
            index  in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值