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中跨服务器文件上传
既然跨服务器,就要开启两个服务器,这里使用两个Tomcat代表两个服务器 文章目录 1.建立图片要上传到的服务器:FileUpload 2.建立上传图片的服务器:Tomcat 9.0.24 3.在Tomcat 9.0.24上部署文件上传的项目,写代码 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 最常用的报告类型:…...
Vue学习——【第二弹】
前言 上一篇文章 Vue学习——【第一弹】 中我们学习了Vue的相关特点及语法,这篇文章接着通过浏览器中的Vue开发者工具扩展来进一步了解Vue的相关工作机制。 Vue的扩展 我们打开Vue的官方文档,点击导航栏中的生态系统,点击Devtools 接着我…...
恐怖的ChatGPT!
大家好,我是飞哥!不知道大家那边咋样。反正我最近感觉是快被ChatGPT包围了。打开手机也全是ChatGPT相关的信息,我的好几个老同学都在问我ChatGPT怎么用,部门内也在尝试用ChatGPT做一点新业务出来。那就干脆我就趁清明假期这一天宝…...
MIPI D-PHYv2.5笔记(12) -- Clock Lane的ULPS
声明:作者是做嵌入式软件开发的,并非专业的硬件设计人员,笔记内容根据自己的经验和对协议的理解输出,肯定存在有些理解和翻译不到位的地方,有疑问请参考原始规范看 LP Mode的Clock Lane ULPS 尽管Clock Lane不包含常规…...
创建网络数据集
目的:主要是用来做路径规划。 第一步:加载用作构建网络数据集的道路网数据到arcmap。 第二步:做打断处理。【如果线数据未做过打断处理,需要做这一步。】 有两种方式【1、编辑器里面的高级编辑器的打断相交线功能;2、…...
从功能到年薪30W+的测试开发工程师,分享我这10年的职业规划路线
求职?择业?跳槽?职业规划? 作为一名初出茅庐的软件测试员,职业发展的道路的确蜿蜒曲折,面对一次次的岗位竞争,挑战一道道的面试关卡,一边带着疑惑,一边又要做出选择&…...
ChatGPT中文免登陆-ChatGPT中文版上线
ChatGPT不支持地区 ChatGPT 是一个开源平台,可在全球范围内使用,不应该存在地区限制。然而,由于某些原因,可能有地区对 ChatGPT 的访问有限制或屏蔽的情况。 如果您发现自己无法访问 ChatGPT,可以尝试以下解决方法&a…...
多线程之最大并行数
4核8线程,采取超线程技术,将一个核心模拟成两个线程。 public class 最大并行数 {public static void main(String[] args) {//向java虚拟机返回可用处理器的数目//getRuntime获取运行状态,获取可用线程数int countRuntime.getRuntime().ava…...
智慧城市发展的基本原理是什么?
智慧城市的建设与发展遵循一定的基本原理。随着智慧城市的持续迭代升级,智慧城市已经从信息化建设与信息技术产品应用阶段,演进到了信息化与城市现代化深度融合阶段,其基本原理也在发生变化。当前,随着数字技术的发展与成熟应用&a…...
技术宅小伙:利用JAVA开发个常用的编辑接口
大家好,今天的任务是创建一个常用的编辑接口。实际上,这个接口是在大约十点半时给我的,他说要在下午上线。我在7号接口完成之后,通过代码和预言室来实现这个业务。 首先,这是一个评论编辑接口,编辑的内容是…...
Image as set points【ICLR 2023 notable top 5%】
Code:https://github.com/ma-xu/Context-Cluster OpenReview:https://openreview.net/forum?idawnvqZja69 前置知识: 1)归纳偏置是否有用? 答:有效,但存在一定的限制。强inductive bias的架构…...
10个超级实用的Python技巧
人生苦短,我学Python。离不开它自带的“buff”。 - 简单好用Python的优势很多,最明显的便是简单、易上手。Python的语法非常简单,比如敲“Hello World”,用其他编程语言要敲6-7行代码,用Python只需要1行代码ÿ…...
【Java语法糖】泛型与源码角度分析静态问题
概念 首先聊聊泛型,泛型是JDK5的新特性。泛型是用来指定不同类型来控制形参具体限制的类型。泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的(运行阶段泛型没用)。写了这么多代码应该能知道泛型的优点就是…...
App 抓包提示网络异常怎么破?
背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: Fiddler中看到的请求是这样的: 你可能开始找证书的问题:是…...
操作系统-文件系统
一、总论 1.1 直观感受 这一章虽然名义上很简单,但是我个人觉得真的很难,其难度是要远超于 lab3 和 lab4 的。对于 lab3 和 lab4,其难度主要集中于复杂的函数调用关系上,如果理清了函数调用关系,会发现难度就很容易弄…...
虚拟机无法访问外网的问题
配置: 1、虚拟机采用NAT模式进行配置 2、虚拟机IP:192.168.109.101,掩码:255.255.255.0,网关:192.168.109.2 3、虚拟机网络编辑器:网关192.168.109.2,网段192.168.109.0,…...
软件测试【常见】62 道面试题,不背完这些你还想去面试?
01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 02、您认为做好测试用例设计工作的关键是什么? 03、您在从事性能测试工作时,是否使用过一些测试工具?如果有࿰…...
聚观早报 | ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜
今日要闻:ChatGPT 停止 Plus 付费;李子柒油管广告收益登顶热搜;亚马逊游戏部门百名员工被裁;国内一公司推出太空葬;苹果将在印度国金融中心开设零售店ChatGPT 停止 Plus 付费 4 月 5 日消息,ChatGPT 目前已…...
对接多个 Neuron 实例,实现多网关协同分析与设备联动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dxTiQ9Lw-1680846960656)(C:\Users\DELL\Desktop\0407技术号四\0407技术号四图片\对接多个 Neuron 实例,实现多网关协同分析与设备联动 图1.png)] 3 月份,eKuiper 团队主要进行…...
网盘直链解析助手:一站式解决多平台文件下载难题
网盘直链解析助手:一站式解决多平台文件下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...
快速 AI 迭代仍然需要操作纪律
前言 配套资源:AI 辅助开发检查清单资源包,适合把本文的流程直接落成开发前检查表和复盘模板。 上一篇文章里,我把 AI 工作流拆成了几类任务模式:开发维护、探索学习、反馈确认。这个分类解决的是一个前置问题:在使用 …...
Unity HDRP 2023.2水系统实战:从清澈泳池到湍急溪流,5分钟调出电影感水体
Unity HDRP 2023.2水系统实战:从清澈泳池到湍急溪流,5分钟调出电影感水体 在游戏和影视级实时渲染中,水体的表现力往往决定了场景的沉浸感上限。Unity 2023.2的HDRP Water Surface系统通过物理参数的艺术化组合,让开发者无需编写着…...
npm publish前必看:如何用命令行优雅搞定2FA,避免发布包时卡壳
npm publish前必看:如何用命令行优雅搞定2FA,避免发布包时卡壳 在npm生态中,发布包是开发者日常工作中不可或缺的一环。然而,随着安全要求的提高,双因素身份验证(2FA)已成为保护账户安全的重要措…...
Linux动态库版本管理:从链接错误到Soname机制详解
1. 从一次“诡异”的链接错误说起那天在服务器上部署一个自己编译的程序,明明libtest.so就躺在当前目录,执行时却弹出了这个让人摸不着头脑的错误:./a.out: error while loading shared libraries: libtest.so.1: cannot open shared object …...
高通865刷机救砖实战:从驱动准备到QPST全流程解析
1. 高通865刷机救砖前的准备工作 遇到手机变砖的情况,很多小伙伴第一反应就是慌。别急,我当初第一次给高通865设备救砖时也手忙脚乱,后来发现只要工具准备齐全,整个过程其实挺简单的。咱们先把这些必备工具和文件都准备好…...
5分钟精通英雄联盟信息修改:LeaguePrank新手完全使用指南
5分钟精通英雄联盟信息修改:LeaguePrank新手完全使用指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否曾在英雄联盟中羡慕别人的华丽段位边框,却苦于自己的段位不够理想?你是否想要…...
pyperclip测试策略:如何确保跨平台剪贴板功能的稳定性
pyperclip测试策略:如何确保跨平台剪贴板功能的稳定性 【免费下载链接】pyperclip Python module for cross-platform clipboard functions. 项目地址: https://gitcode.com/gh_mirrors/py/pyperclip pyperclip是一个强大的Python跨平台剪贴板模块࿰…...
突破性效率工具:3步实现Draw.io Mermaid智能绘图完整方案
突破性效率工具:3步实现Draw.io Mermaid智能绘图完整方案 【免费下载链接】drawio_mermaid_plugin Mermaid plugin for drawio desktop 项目地址: https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin 还在为传统拖拽式绘图效率低下而烦恼吗࿱…...
ceshi1
进入2026年,企业数字化转型已从“流程数字化”全面转向“认知自动化”。 据最新行业数据显示,企业内部超过85%的数据以PDF、图片、音视频、扫描件等非结构化形式存在。 这些数据曾被视为“沉默的资产”,因为传统OCR或规则引擎难以处理其复杂的…...
