搭建一个用于学习的 图片服务器的过程记录

 1, 使用IDEA创建一个maven的web工程, 作为服务器只需要在webapp下创建一个images文件夹作为图片的存储目录,然后在web.xml里面配置tomcat插件, 虚拟路径设置为/, 端口号改为 8003,防止8080端口被意外占用.

 2, 使用springMVC的文件上传测试效果,,但是此上传只能上传到当前服务器, 此时需要导入跨服务器上传文件的jar包工具,依赖如下:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.18.1</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.18.1</version>
</dependency>

3,配置springMVC的文件上传解析器等就不写了,,后台上传代码如下:

@Value("${FILE_SERVER_URL}")
    private String file_server_url;

@RequestMapping("/upload.do")
    public Result upload(MultipartFile file) {
        //接收到上传的文件,获取他的后缀名
        String originalFilename = file.getOriginalFilename();
        String extname = originalFilename.substring(originalFilename.lastIndexOf(".") );
        String uuid = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
        String url = file_server_url+uuid+extname;
        //创建一个上传客户端对象
        Client client = Client.create();
        //连接到图片服务器
        WebResource webResource = client.resource(url);
        try {
            //上传图片
            webResource.put(file.getBytes());
           // System.err.println("url = " + url);
            return new Result(true, url);
        } catch (Exception e) {
            e.printStackTrace();
            return new Result(false, "上传失败");
        }
    }

4, 测试一跑, 报错,文件上传失败,,查看报错信息  : "返回了一个403状态码" . 403是权限不足的意思,  得知tomcat默认跨服务器之间是 只读 状态,需要配置tomcat为 可读写状态,但是IDEA的maven插件中无法修改配置文件(可能是我不会配置吧), 只好把web.xml中的插件清除, 然后在idea中集成我电脑上的tomcat, 然后修改tomcat的conf文件夹下web.xml文件,修改如下:

<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>

<!--在这里加入下面这段,,将只读设置为false-->
		<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>

 然后在idea中tomcat部署的选项中 勾选: Deploy Applications configured in Tomcat instance 这个选项, 重新启动服务器再次测试

理论上应该成功的,结果是没有报403 的错误了,,但是又报了一个409的 状态码的错误, 409代表服务器内运行有冲突,,网上查了下资料,说是路径有问题,,对比了下路径貌似没有问题啊

5, 由于我的images文件夹是 空的,我往里面添加了一个测试的html文件,然后用浏览器访问,访问成功,路径没问题呀,,  然后我又试着上传了一次, 这次居然成功了!!!!  我想到难道这和空文件夹有关,,?

6文件上传成功,按道理讲,图片服务器就搭建好了,但是此时还存在一个大问题: 此时上传的图片全是保存在部署到Tomcat的webapps下的ROOT 文件夹下的images中, 这个ROOT文件夹就是我们的图片服务器, 当在IDEA中重启tomcat时,会重新部署项目到这里,此时项目就会被覆盖,之前上传的图片将全部消失,那么之前保存下来的url地址将全部失效,怎么解决呢?

7, 接下来需要在tomcat的conf文件夹下的server.xml 文件中添加 自定义地址映射的配置 配置添加如下:    在host标签中添加:

<Context path="/images" docBase="E:\project\images" reloadable="true" />

然后重启图片服务器, 测试上传图片,此时图片顺利存储到映射的本地文件夹下了,而访问的url不变,这样即使重启tomcat也不会造成无法访问的问题了,至此,图片服务器搭建成功!

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值