使用tomcat做图片服务器的的目的
主要是因为项目小,暂时不需要大的解决方案,在就是避免频繁的更新导致的图片等数据文件的备份留存问题。
除了可以使用tomcat做图片服务器之外,同样也可以使用tomcat的虚拟路径解决问题。
几个步骤,整理一下,附带上传到tomcat图片服务器的上传代码

-步骤一
更改tomcat端口,如果图片服务器的tomcat跟应用服务器在同一台机器上,那么请更改图片服务器的三个端口,避免端口冲突。

-步骤二
更改tomcat的读写权限
图片服务器Tomcat的设置 tomcat/conf/web.xml中内容更改
注意readonly 的value。

<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>readonly</param-name><param-value>false</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>

-步骤三

-步骤四
以下附带图片上传code,使用的是jersey client。请根据自己情况改造。

//上传图片  通过@RequestParam(required = false) MultipartFile获取图片
@RequestMapping(value = "/upload/uploadPic.do")
public void uploadBrandPic(@RequestParam(required = false) MultipartFile uploadPic,HttpServletResponse response){//图片名称生成策略---采用时间格式(精确到毫秒)并追加随机3位(10以内)数字//精确到毫秒DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");String picName = df.format(new Date());//随机再生成3位 10以内的数Random r = new Random();for(int i=0;i<3;i++){picName += r.nextInt(10);}//获取扩展名String originalFilename = uploadPic.getOriginalFilename();String ext = FilenameUtils.getExtension(originalFilename);//相对路径String path = "upload/" + picName + "." + ext;//全路径String url = http://localhost:8088/image-web/ + path;//jersey 发送另一台Tomcat(可读写的)Client client = new Client();WebResource resource = client.resource(url);try {resource.put(String.class, uploadPic.getBytes());} catch (UniformInterfaceException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (ClientHandlerException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}
}

虚拟路径解决(一下转载) 原文地址:http://my.oschina.net/pingdy/blog/381001

现在一般的项目都可能会涉及文件的上传与下载,那如何管理这些文件呢?做法各有千秋!今天我也分享下我是怎么去管理这些文件的!当然了,这样的方式只适用于文件量小的情况下!如果文件数量非常庞大,那可以考虑一些开源的解决方案! 最初,我们会把一些文件直接放置在服务器中或者是直接放置在工程目录中!这样的好处是访问文件方便,但是也有弊端,个人认为维护性差原因可能有我们的工程可能会频繁的更新,没更新一次就得先保留一份数据,这样是很繁琐的!

 使用Tomcat虚拟路径可以达到一个怎样的效果呢?简单说你可以把上传的文件放在你想发的任何一个地方,同时可以自己区分
下文件的类型,图片文件专门放一个地方,压缩包文件放另一个地方。其实如何配置非常简单,这里以window环境来说明!首先找到tomcat目录下conf目录下的server.xml文件在server.xml文件中找到<Host></Host>然后在其中加上这两句<Context path="/demo/file" docBase="D:\demo\File\file"></Context><Context path="/demo/image" docBase="D:\demo\File\image"></Context>
解释下这两句话的意义以tomcat在本机跑为例 一般是http://localhost:8080当你访问http://localhost:8080/demo/file/xxx.zip或者是http://localhost:8080/demo/image/xxx.jpg
的时候,tomcat就会把请求转发,去请求tomcat所在的物理机上的D盘下D:\demo\File\file下的xxx.zip文件和xxx.jpg
文件当文件上传的时候只需要把相应的文件存放到相应的目录中在数据库中存放文件的路径:这里最好在数据库中存放xxx.zip 或者xxxx.jpg这样的文件名为什么?这样更方便服务器迁移!比方说你tomcat服务器需要切换到另一台物理机上,那么原先存放在数据库中的全地址就不可以用了所以,比较好的方法是 服务器地址信息可以使用配置文件来管理,请求文件的全地址就后台拼装好即可,这样就算要做迁移 ,也只是改改配置文件,把文件拷贝一份到新的物理机上,其他无需改!还有一点需要注意下:我们在做测试的时候,开发工具都是使用Eclipse,Eclipse有个比较恶心的地方就是每次重新启动tomcat的时候会把tomcat中的配置信息重置一遍!所以导致看不到效果!稍微注意下。以上纯粹个人愚见,仅供参考!
 <Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><Context path="/demo/file" docBase="D:\demo\File\file"></Context><Context path="/demo/image" docBase="D:\demo\File\image"></Context></Host>

使用tomcat做图片服务器相关推荐

  1. tomcat做图片服务器

    Tomcat作为项目服务器时因为权限问题,只能访问Tomcat文件夹下的资源.但是实际工作中如果把所有图片文件都保存在tomcat下,不利于后续工作进行.所以可以在server.xml中加入如下配置, ...

  2. 用Lighttpd做图片服务器

    http://www.lsanotes.cn/install_lighttpd 用Lighttpd做图片服务器 一.安装lighttpd所需的库文件 1.安装 pcre wget ftp://ftp. ...

  3. 用tomcat部署图片服务器

    场景介绍: 在某些项目里,图片上传功能使用较多且图片量大,所以一般会使用单独弄个图片的服务器或放图片的硬盘存放这些大量的图片,并且外网能直接访问这个图片路径.这个时候就需要用到 tomcat 部署一个 ...

  4. Nginx做图片服务器

    前言: Nginx是一个高性能的HTTP和反向代理web服务器,以及负载均衡器.根据nginx是高性能的http服务器,因此可以用作图片服务器使用. 本案例是在docker安装nginx来操作的. N ...

  5. tomcat提高图片服务器性能,Tomcat性能调优(windows)

    1.目录: a.基础调优 b.JVM 优化 c.高级调优 2.基础调优: 2.1.tomcat的各版本的优化参数有点不一样,可以启动tomcat之后访问[http://127.0.0.1:8080/d ...

  6. tomcat搭建图片服务器

    1.安装tomcat后,修改Tomcat 7.0\conf\server.xml 找到Host标签加入如下内容:   <Context path="/static" docB ...

  7. 使用Nginx做图片服务器时候,配置之后图片访问一直是 404问题解决

    我的错误配置是: 服务器文件根地址: 想通过浏览器输入这个地址访问到图片: 但是会发现文件找不到会一直404,原因是根路径配置错误,来看下root路径原理: root 配置的意思是,会在root配置的 ...

  8. Nginx 做图片服务器

    呵呵 说来搞笑 我们公司领导那个决定啊,公司的图片Windows服务机器 准备迁移到Linux,我勒个去,也不搞个正规的文件系统,先喷下公司 2.8KW 张零碎图片 1.8T 文件占有量, 哥刚刚接手 ...

  9. 用Tomcat构建一个简单图片服务器

    前提条件 Tomcat 7.0.90 方法一:修改配置文件 在TOMCAT_HOME/conf/server.xml配置文件内的<Host>内添加一子标签: <Context doc ...

最新文章

  1. japid-controller自动绑定的数据类型
  2. python opencv教程rtsp server_Python多进程opencv调用rtsp视频流
  3. 计算机网络原理和OSI模型与TCP模型
  4. Spring框架—SpringBean配置
  5. Windows phone msdn 索引
  6. 根据上边栏和下边栏的高度进行布局
  7. C语言extern关键词—最会带帽子的关键字
  8. 单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...
  9. 我的 intellij idea 设置
  10. 修改WordPress主题,中文显示乱码的解决办法
  11. [Voice communications] 音量的控制
  12. 【系列8】使用Dockerfile创建带MongoDB的Centos Docker镜像
  13. OAuth 2 开发人员指南(Spring security oauth2)
  14. 3个免费开源的项目管理/甘特图软件
  15. html中响应ocx事件,JS实现OCX控件的事件响应示例
  16. Linux内核网络:实现与理论--序言
  17. 使用apt更新和升级系统软件
  18. 微信快捷回复技巧秘籍
  19. Golang hijack 劫持
  20. Fiddler调式使用(一)深入研究[转载]

热门文章

  1. C++学习练习 之模板
  2. 使用mysql_upgrade命令_mysql_upgrade命令
  3. 【C进阶】two -> 指针进阶(二)
  4. 小伙子用C++代码打造全屏幻灯片图片显示特效!成功拿到offer
  5. mac 无法打开“idevice_id”,因为无法验证开发者。
  6. HDU - 1232 畅通工程 【连通块】
  7. Windows 7 / 2008 R2 with SP1 简体中文版MSDN镜像下载
  8. 学习日记01 GEE下载Sentinel2A数据(外部导入shp和直接绘图)
  9. mysql检测工具_MySQL性能测试工具
  10. vue2乾坤框架搭建