当前位置: 首页 > news >正文

Springmvc中跨服务器文件上传

既然跨服务器,就要开启两个服务器,这里使用两个Tomcat代表两个服务器
文章目录
1.建立图片要上传到的服务器:FileUpload
2.建立上传图片的服务器:Tomcat 9.0.24
3.在Tomcat 9.0.24上部署文件上传的项目,写代码
3.1导入相应jar包
3.2 写一个前端页面
3.3 写后台上传文件代码
1.建立图片要上传到的服务器:FileUpload

 

 2.建立上传图片的服务器:Tomcat 9.0.24


 3.在Tomcat 9.0.24上部署文件上传的项目,写代码
3.1导入相应jar包

<dependencies><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><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></dependencies>

3.2 写一个前端页面

<h3>Springmvc跨服务器文件上传</h3><form action="/user/fileUpload2" method="post"enctype="multipart/form-data">选择文件:<input type="file" name="upload"/><br><input type="submit" value="上传"/></form></body>

3.3 写后台上传文件代码

//跨服务器文件上传
@Controller
@RequestMapping("/user")
public class UserController2 {@RequestMapping("/fileUpload2")public String fileUpload(MultipartFile upload) throws Exception {System.out.println("文件上传");//定义文件上传服务器路径String path = "http://localhost:9090/uploads/";//获取到上传文件的名称String fileName = upload.getOriginalFilename();//防止文件上传被覆盖,将文件名设置为唯一的String uuid= UUID.randomUUID().toString().replace("-","");fileName = uuid+"_"+fileName;//创建客户端对象Client client = Client.create();//和图片服务器进行连接WebResource resource = client.resource(path + fileName);//上传文件resource.put(upload.getBytes());return "success";}
}

 

这里会报一个异常,代码为405,是因为Tomcat的原因,需要到Tomcat的安装目录的配置文件的web.xml文件中添加一个参数

<init-param><param-name>readonly</param-name><param-value>false</param-value>
</init-param>

其次,还有可能报一个异常为500,NoClassDefFoundError,这个异常是因为虽然导入了依赖,但是没有打入。

 最后可能还会报一个异常,是因为

当以上的异常都解决以后,那么:

相关文章:

Springmvc中跨服务器文件上传

既然跨服务器&#xff0c;就要开启两个服务器&#xff0c;这里使用两个Tomcat代表两个服务器 文章目录 1.建立图片要上传到的服务器&#xff1a;FileUpload 2.建立上传图片的服务器&#xff1a;Tomcat 9.0.24 3.在Tomcat 9.0.24上部署文件上传的项目&#xff0c;写代码 3.1导入…...

常见漏洞扫描工具AWVS、AppScan、Nessus的使用

HVV笔记——常见漏洞扫描工具AWVS、AppScan、Nessus的使用1 AWVS1.1 安装部署1.2 激活1.3 登录1.4 扫描web应用程序1.4.1 需要账户密码登录的扫描1.4.2 利用录制登录序列脚本扫描1.4.3 利用定制cookie扫描1.5 扫描报告分析1.5.1 AWVS报告类型1.5.2 最常用的报告类型&#xff1a…...

Vue学习——【第二弹】

前言 上一篇文章 Vue学习——【第一弹】 中我们学习了Vue的相关特点及语法&#xff0c;这篇文章接着通过浏览器中的Vue开发者工具扩展来进一步了解Vue的相关工作机制。 Vue的扩展 我们打开Vue的官方文档&#xff0c;点击导航栏中的生态系统&#xff0c;点击Devtools 接着我…...

恐怖的ChatGPT!

大家好&#xff0c;我是飞哥&#xff01;不知道大家那边咋样。反正我最近感觉是快被ChatGPT包围了。打开手机也全是ChatGPT相关的信息&#xff0c;我的好几个老同学都在问我ChatGPT怎么用&#xff0c;部门内也在尝试用ChatGPT做一点新业务出来。那就干脆我就趁清明假期这一天宝…...

MIPI D-PHYv2.5笔记(12) -- Clock Lane的ULPS

声明&#xff1a;作者是做嵌入式软件开发的&#xff0c;并非专业的硬件设计人员&#xff0c;笔记内容根据自己的经验和对协议的理解输出&#xff0c;肯定存在有些理解和翻译不到位的地方&#xff0c;有疑问请参考原始规范看 LP Mode的Clock Lane ULPS 尽管Clock Lane不包含常规…...

创建网络数据集

目的&#xff1a;主要是用来做路径规划。 第一步&#xff1a;加载用作构建网络数据集的道路网数据到arcmap。 第二步&#xff1a;做打断处理。【如果线数据未做过打断处理&#xff0c;需要做这一步。】 有两种方式【1、编辑器里面的高级编辑器的打断相交线功能&#xff1b;2、…...

从功能到年薪30W+的测试开发工程师,分享我这10年的职业规划路线

求职&#xff1f;择业&#xff1f;跳槽&#xff1f;职业规划&#xff1f; 作为一名初出茅庐的软件测试员&#xff0c;职业发展的道路的确蜿蜒曲折&#xff0c;面对一次次的岗位竞争&#xff0c;挑战一道道的面试关卡&#xff0c;一边带着疑惑&#xff0c;一边又要做出选择&…...

ChatGPT中文免登陆-ChatGPT中文版上线

ChatGPT不支持地区 ChatGPT 是一个开源平台&#xff0c;可在全球范围内使用&#xff0c;不应该存在地区限制。然而&#xff0c;由于某些原因&#xff0c;可能有地区对 ChatGPT 的访问有限制或屏蔽的情况。 如果您发现自己无法访问 ChatGPT&#xff0c;可以尝试以下解决方法&a…...

多线程之最大并行数

4核8线程&#xff0c;采取超线程技术&#xff0c;将一个核心模拟成两个线程。 public class 最大并行数 {public static void main(String[] args) {//向java虚拟机返回可用处理器的数目//getRuntime获取运行状态&#xff0c;获取可用线程数int countRuntime.getRuntime().ava…...

智慧城市发展的基本原理是什么?

智慧城市的建设与发展遵循一定的基本原理。随着智慧城市的持续迭代升级&#xff0c;智慧城市已经从信息化建设与信息技术产品应用阶段&#xff0c;演进到了信息化与城市现代化深度融合阶段&#xff0c;其基本原理也在发生变化。当前&#xff0c;随着数字技术的发展与成熟应用&a…...

技术宅小伙:利用JAVA开发个常用的编辑接口

大家好&#xff0c;今天的任务是创建一个常用的编辑接口。实际上&#xff0c;这个接口是在大约十点半时给我的&#xff0c;他说要在下午上线。我在7号接口完成之后&#xff0c;通过代码和预言室来实现这个业务。 首先&#xff0c;这是一个评论编辑接口&#xff0c;编辑的内容是…...

Image as set points【ICLR 2023 notable top 5%】

Code&#xff1a;https://github.com/ma-xu/Context-Cluster OpenReview&#xff1a;https://openreview.net/forum?idawnvqZja69 前置知识&#xff1a; 1&#xff09;归纳偏置是否有用&#xff1f; 答&#xff1a;有效&#xff0c;但存在一定的限制。强inductive bias的架构…...

10个超级实用的Python技巧

人生苦短&#xff0c;我学Python。离不开它自带的“buff”。 - 简单好用Python的优势很多&#xff0c;最明显的便是简单、易上手。Python的语法非常简单&#xff0c;比如敲“Hello World”&#xff0c;用其他编程语言要敲6-7行代码&#xff0c;用Python只需要1行代码&#xff…...

【Java语法糖】泛型与源码角度分析静态问题

概念 首先聊聊泛型&#xff0c;泛型是JDK5的新特性。泛型是用来指定不同类型来控制形参具体限制的类型。泛型这种语法机制&#xff0c;只在程序编译阶段起作用&#xff0c;只是给编译器参考的&#xff08;运行阶段泛型没用&#xff09;。写了这么多代码应该能知道泛型的优点就是…...

App 抓包提示网络异常怎么破?

背景 当你测试App的时候&#xff0c;想要通过Fiddler/Charles等工具抓包看下https请求的数据情况&#xff0c;发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例&#xff1a; Fiddler中看到的请求是这样的&#xff1a; 你可能开始找证书的问题&#xff1a;是…...

操作系统-文件系统

一、总论 1.1 直观感受 这一章虽然名义上很简单&#xff0c;但是我个人觉得真的很难&#xff0c;其难度是要远超于 lab3 和 lab4 的。对于 lab3 和 lab4&#xff0c;其难度主要集中于复杂的函数调用关系上&#xff0c;如果理清了函数调用关系&#xff0c;会发现难度就很容易弄…...

虚拟机无法访问外网的问题

配置&#xff1a; 1、虚拟机采用NAT模式进行配置 2、虚拟机IP&#xff1a;192.168.109.101&#xff0c;掩码&#xff1a;255.255.255.0&#xff0c;网关&#xff1a;192.168.109.2 3、虚拟机网络编辑器&#xff1a;网关192.168.109.2&#xff0c;网段192.168.109.0&#xff0c;…...

软件测试【常见】62 道面试题,不背完这些你还想去面试?

01、您所熟悉的测试用例设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 02、您认为做好测试用例设计工作的关键是什么&#xff1f; 03、您在从事性能测试工作时&#xff0c;是否使用过一些测试工具&#xff1f;如果有&#xff0…...

聚观早报 | ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜

今日要闻&#xff1a;ChatGPT 停止 Plus 付费&#xff1b;李子柒油管广告收益登顶热搜&#xff1b;亚马逊游戏部门百名员工被裁&#xff1b;国内一公司推出太空葬&#xff1b;苹果将在印度国金融中心开设零售店ChatGPT 停止 Plus 付费 4 月 5 日消息&#xff0c;ChatGPT 目前已…...

对接多个 Neuron 实例,实现多网关协同分析与设备联动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxTiQ9Lw-1680846960656)(C:\Users\DELL\Desktop\0407技术号四\0407技术号四图片\对接多个 Neuron 实例&#xff0c;实现多网关协同分析与设备联动 图1.png)] 3 月份&#xff0c;eKuiper 团队主要进行…...

【无线通信】基于统计信道的低复杂度旋转和位置优化为6D可移动天线无线通信附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

告别蜗牛速度!优麒麟20.04 LTS换源华为云镜像保姆级教程

优麒麟20.04 LTS提速指南&#xff1a;华为云镜像配置全解析 每次在优麒麟上安装软件时&#xff0c;看着进度条像蜗牛一样缓慢前进&#xff0c;是不是让你感到无比焦虑&#xff1f;特别是当你急需某个工具完成工作时&#xff0c;漫长的等待简直让人抓狂。作为一款基于Ubuntu的国…...

OpenClaw多设备同步:GLM-4.7-Flash配置共享方案

OpenClaw多设备同步&#xff1a;GLM-4.7-Flash配置共享方案 1. 为什么需要多设备同步配置&#xff1f; 去年冬天&#xff0c;我在办公室和家里两台MacBook上分别部署了OpenClaw对接GLM-4.7-Flash模型。很快发现一个头疼的问题&#xff1a;每次在办公室调试好的技能参数&#…...

第三章 Qt 编译及安装

1. Qt 编译安装 2 Qt 在线安装 在线安装包的下载地址&#xff1a; https://download.qt.io/official_releases/online_installers/ Qt对不同的平台提供了不同版本的安装包&#xff0c;可根据实际情况自行下载安装&#xff0c;本文档使用qt-online-installer-windows-x64-on…...

3分钟快速上手:免费高效的Elasticsearch可视化工具Elasticvue终极指南

3分钟快速上手&#xff1a;免费高效的Elasticsearch可视化工具Elasticvue终极指南 【免费下载链接】elasticvue Elasticsearch gui for the browser 项目地址: https://gitcode.com/gh_mirrors/el/elasticvue 你是否曾经为复杂的Elasticsearch集群管理而烦恼&#xff1f…...

2026年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 3 分,共 30 分) 第 1 题 在 2026 年春晚的《武 BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果…...

RGBLEDBlender:嵌入式RGB LED色彩混合与动态控制框架

1. RGBLEDBlender 库深度解析&#xff1a;面向嵌入式系统的 RGB 色彩混合与动态控制框架RGBLEDBlender 是一个轻量级、面向硬件的 RGB LED 色彩混合库&#xff0c;专为资源受限的微控制器平台&#xff08;尤其是 Arduino 生态&#xff09;设计。该库由 Erik Sikich 于 2016 年 …...

Unity 工具之(SharpZipLib)跨平台中文Zip压缩与解压实战指南(附多线程优化)

1. 为什么选择SharpZipLib处理Unity中的Zip文件 在Unity项目开发中&#xff0c;资源打包和网络传输经常需要处理压缩文件。SharpZipLib作为.NET平台的老牌压缩库&#xff0c;相比Unity内置的压缩方案有三个不可替代的优势&#xff1a; 首先是对中文路径的完美支持。很多开发者都…...

财务银行对账费时间?RPA自动对接流水,10分钟对完1个月账

RPA自动化银行对账的优势传统手工对账通常需要财务人员逐笔核对银行流水和企业账目&#xff0c;耗时费力且易出错。RPA&#xff08;机器人流程自动化&#xff09;技术可实现银行流水与企业账务系统的自动对接&#xff0c;大幅提升效率。10分钟完成1个月账目核对已成为现实。RPA…...

TEA加密算法实战:用Python和C语言实现QQ同款加密(附完整代码)

TEA加密算法实战&#xff1a;从原理到跨语言实现 在即时通讯和物联网设备中&#xff0c;数据安全传输一直是核心需求。TEA&#xff08;Tiny Encryption Algorithm&#xff09;以其轻量级、高效率的特性&#xff0c;成为资源受限环境下的理想选择。本文将深入探讨TEA算法家族的工…...