如何快速搭建图片服务器

article/2025/10/2 23:38:06

前言

分布式集群的项目, 正常一般的工程是把图片放在web项目的自身服务器的工程中,但在集群环境下,会出现找不到图片的情况。

代码参考: https://github.com/zyjcxc/taotao.git

比如:

解决办法:

linux做磁盘的映射,说能解决,但服务器多了也不好弄,所以可以再搭建一个图片服务器

图片服务器两个服务:

  • http:可以使用nginx做静态资源服务器。也可以使用apache。推荐使用nginx,效率更高。也可以结合我之前的mongo文件服务器,将文件url存到Mongo中。

  • ftp服务:使用linux做服务器,在linux中有个ftp组件vsftpd。

步骤

服务器需求

Linux:CentOS6.4
Nginx:1.8.0
Vsftpd:需要在线安装。

Nginx安装

参考 Nginx安装指南.

Vsftpd安装

参考 Vsftpd安装指南.

图片服务器的测试

安装好环境后,可以用ftp客户端(FileZilla)测试是否能上传下载文件。

ftp上传图片后, 用浏览器直接访问图片路径,测试是否有图片显示。

java代码实现上传

使用apache的FTPClient工具访问ftp服务器。需要在pom文件中添加依赖:

<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>${commons-net.version}</version>
</dependency>
public class FTPClientTest {@Testpublic void testFtp() throws Exception {//1、连接ftp服务器FTPClient ftpClient = new FTPClient();ftpClient.connect("192.168.1.133", 21);//2、登录ftp服务器ftpClient.login("ftpuser", "ftpuser");//3、读取本地文件FileInputStream inputStream = new FileInputStream(new File("D:\\Documents\\Pictures\\images\\2010062119283578.jpg"));//4、上传文件//1)指定上传目录ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");//2)指定文件类型ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//第一个参数:文件在远程服务器的名称//第二个参数:文件流ftpClient.storeFile("hello.jpg", inputStream);//5、退出登录ftpClient.logout();}
}

后续可以根据需求,将其封装工具类,写service, contorller即可, 截取部分代码

public Map uploadPicture(MultipartFile uploadFile) {Map<String, Object> map = new HashMap<>(2);try {String oldName = uploadFile.getOriginalFilename();String newName = IDUtils.genImageName();newName += oldName.substring(oldName.lastIndexOf("."));String imagePath = new DateTime().toString("yyyy/MM/dd");boolean result = FtpUtil.uploadFile(FTP_HOST, FTP_PORT, FTP_USERNAME, FTP_PASSWORD, FTP_BASE_PATH, imagePath, newName, uploadFile.getInputStream());if (!result) {map.put("error", 1);map.put("message", "文件上传失败");return map;}map.put("error", 0);map.put("url", IMAGE_BASE_URL + "/" + imagePath + "/" + newName);} catch (IOException e) {map.put("error", 1);map.put("message", "文件上传异常");e.printStackTrace();return map;}return map;
}

注意

springmvc框架,在配置文件中要加入文件上传解析器

<!-- 定义文件上传解析器 -->
<bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设定默认编码 --><property name="defaultEncoding" value="UTF-8"></property><!-- 设定文件上传的最大值5MB,5*1024*1024 --><property name="maxUploadSize" value="5242880"></property>
</bean>

http://chatgpt.dhexx.cn/article/lN3mTMZs.shtml

相关文章

图片服务器实现

项目背景 现在很多地方仅仅支持文字发送&#xff0c;而不支持图片发送&#xff0c;&#xff0c;但是在很多特定的场景有需要图片发送等方式&#xff0c;所以我们可以构建一个HTTP服务器来完成这个功能&#xff0c;通过这个服务器为连接服务器的数据库上的每个图片生成一个特定…

图片服务器解决方案

最近经常有人问图片上传怎么做&#xff0c;有哪些方案做比较好&#xff0c;也看到过有关于上传图片的做法&#xff0c;但是都不是最好的 今天再这里简单讲一下上传图片以及图片服务器的大致理念 如果是个人项目或者企业小项目&#xff0c;仅仅只有十来号人使用的小项目&#…

搭建一个图片服务器

最近在学习一个电商项目&#xff0c;其中用到了图片上传服务&#xff0c;自己在学习过程中遇到了点问题&#xff0c;记录下来&#xff0c;以备以后查询 首先需要安装nginx和vsftpd&#xff0c;这两者的安装都有相应的手册&#xff0c;步骤非常详细&#xff0c;我就不啰嗦了&…

简单的本地图片服务器的搭建

简单的本地图片服务器的搭建 第一步&#xff1a;安装部署 Nginx下载 Nginx下载完解压后 第二步&#xff1a; 搭建图片服务器 第一步&#xff1a;安装部署 Nginx 下载 Nginx 保存文件路径不要包含中文&#xff01; Linux和Windows不一样&#xff01; 下载完成后&#xff0c;解…

图片服务器

图片服务器 图片服务器主要的功能是&#xff1a;上传图片&#xff0c;显示图片的功能 写博客的时候&#xff0c;插入的图片&#xff0c;本质上是往文章内插入一个url&#xff0c;图片其实是保存在在另一个服务器上&#xff0c;而我这个项目就是制作一个类似这样的服务器。 核心…

FastDFS搭建图片服务器

服务器规划 服务器名称IP地址和端口备注fastdfs-tracker*:22122跟踪服务器/调度服务器fastdfs-storage*:23000存储服务器 一、安装系统组件 yum install gcc -y 二、安装fastdfs 1、创建图片服务器存储目录 mkdir -p /data/image 2、下载FastDFS依赖包libfastcommon并安…

Zimg—轻量级图片服务器搭建利器

在一个互联网应用中&#xff0c;图片扮演着越来越重要的角色。有稳定的可扩展的图片存储服务器就显得尤为的重要&#xff0c;云厂商们提供了便利的图片存储服务&#xff0c;花钱就可以解决了。这里简单介绍一个开源的一个分布式图片存储服务器——zimg&#xff0c;来自己搭建一…

图片服务器的搭建

当高并发的时候容易发生图盘上传到一个服务器从另一个服务器需要读取照片 解决方法&#xff1a; 专门保存图片&#xff0c;不管是哪个服务器接收到图片&#xff0c;都把图片上传到图片服务器。 图片服务器上需要安装一个http服务器&#xff0c;可以使用tomcat、apache、ngin…

图片服务器搭建

图片服务器搭建 原先我们通过servlet上传一个用户的头像&#xff0c;需要把头像显示到网站上。就需要搭建一个图片服务器来显 示图片了。 图片服务器其实和tomcat/nginx容器的作用是一样的。目的都是要把文件从本地的磁盘上发布出去。一般常用 的图片服务器是apache服务器 &am…

三种图片服务器

2019独角兽企业重金招聘Python工程师标准>>> 到目前&#xff0c;工作中用到的图片服务器有下面三种&#xff1a; &#xff08;1&#xff09;使用Nginx搭建图片服务器 &#xff08;2&#xff09;使用阿里云图片服务器&#xff08;OOS&#xff09; &#xff08;3&…

【java】本地客户端内嵌浏览器2 - chrome/chromium/cef/jcef

目录 ★☆★ 写在前面 ★☆★★☆★ 本系列文章 ★☆★★☆★ 开源网址 ★☆★一、发现新大陆 - CEF/JCEF0、前言1、使用 jcef.jar 搭建项目2、启动包含 jcef.jar 的程序3、simple\MainFrame 注释翻译 二、定制自己的项目之 Swing1、删除导航栏2、程序启动最大化窗口&#xff0…

C#嵌入谷歌浏览器内核

1.右击项目&#xff0c;选择.net框架为4.5以上&#xff1a; 2.右击项目&#xff0c;选择“管理Nuget程序包”&#xff0c;点击“浏览”&#xff0c;搜索“CefSharp”&#xff0c;选择“CefSharp WinForms”下载安装。 安装之后到项目的引用下查看&#xff0c;会出现&#xff…

WinFrom内嵌chrome浏览器

选中项目&#xff0c;右键&#xff0c;下拉列表里选择“管理Nuget程序包&#xff08;N&#xff09;”选项&#xff0c;打开如图&#xff1a; 按照步骤装上这个nuget包&#xff0c;装上以后你的工具箱就有这个了&#xff1a; 不用拖拉控件&#xff0c;直接代码绑定把&#xff…

在网页中内嵌网页

目录&#xff1a; 文章目录 前言代码展示主页代码展示作品的代码球体运动方块旋转 结果演示 前言 在制作个人网站时&#xff0c;经常遇到一个问题&#xff0c;就是如何让自己的作品动态的显示在主页上而本文就是找到了解决办法&#xff0c;利用<embed src"xx.html&qu…

Qt实现 内嵌CEF制作浏览器(首篇)

介绍 cef支持跨平台&#xff0c;是基于Chromium的开源浏览器控件&#xff0c;全称Chromium Embedded Framework&#xff0c;因为其跨平台性&#xff0c;被广泛使用于制作浏览器。 本文主要介绍如何下载cef以及编译windows下的cef项目&#xff0c;并运行查看浏览器显示效果。 …

Qt 内嵌浏览器几种办法

1.使用axWidget QT axcontainer 然后ui里面就可以出现QAxWidget 直接拖入就可以 ui->axWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}")); ui->axWidget->setFocusPolicy(Qt::StrongFocus); ui->axWidget…

CEF内嵌浏览器 编译

CEF github 笔记 https://github.com/fanfeilong/cefutil/blob/master/doc/CEF%20General%20Usage-zh-cn.md#using-binray 介绍 CEF全称Chromium Embedded Framework&#xff0c;是一个基于Google Chromium 的开源项目。Google Chromium项目主要是为Google Chrome应用开发的…

Unity内嵌浏览器插件(Android、iOS、Windows)

文章目录 一. Embedded Browser插件下载2. 使用 二. UniWebView插件1. 下载2. 使用 三、我自制的迷你浏览器 一. Embedded Browser插件 下载 平台&#xff1a;Windows 链接&#xff1a;https://pan.baidu.com/s/1h2oyGW6FsvPlOGCob0VrfA 提取码&#xff1a;02tu 2. 使用 导…

QT内嵌浏览器与JS通讯

QT内嵌浏览器与JS通讯 1. 概述2. JS调用QT方法2.1 QT代码2.2 HTML/代码 3 WebEngineView示例4. 效果展示 1. 概述 QT内嵌浏览器支持拦截请求、获取cookie、js代码注入及js调用QT方法。本篇主要介绍js调用QT方法其他方式的使用QT WebEngineView 拦截请求、获取cookie&#xff0…

Unity 工具之 内嵌网页/浏览器 web view / browser 插件的整理大全(包括Window Mac Android iOS 等)

Unity 工具之 内嵌网页/浏览器 web view / browser 插件的整理大全&#xff08;包括Window Mac Android iOS 等&#xff09; 目录 Unity 工具之 内嵌网页/浏览器 web view / browser 插件的整理大全&#xff08;包括Window Mac Android iOS 等&#xff09; 一、简单介绍 二、…