springmvc上传下载

2023-05-16

(1)form表单的enctype取值是:multipart/form-data,method取值是:post,提供一个文件选择域

(2)springmvc方式

  • 做表单

<h3>springmvc文件上传方式</h3>
<form action="user/fileUpload2" method="post" enctype="multipart/form-data">
    选择文件<input type="file" name="upload"/><br>
    <input type="submit" value="上传">
</form>  
  • 配解析器

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10485760"/>
</bean>  

id="multipartResolver",id的名字必须是这个名字:multipartResolver

  • 
    public String fileUpload2(HttpServletRequest request, MultipartFile upload)  

MultipartFile upload的参数名必须与表单<input type="file" name="upload"/>name的名字一致

(3)跨服务器传文件

  • 启动两个tomcat,是两个真实的tomcat服务器
  • 导包

<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>  
  • 编程

@RequestMapping("/fileUpload3")
public String fileUpload3(MultipartFile upload) throws Exception {
    System.out.println("跨服务器springmvc文件上传。。。。。");

    String path = "http://localhost:9090/fileuploadserver/uploads";

    //说明是上传文件项,获取上传文件的名称
    String filename = upload.getOriginalFilename();

    //文件名称设置成UUID
    String uuid = UUID.randomUUID().toString().replace("-", "");

    filename = uuid + "_" + filename;

    Client client = Client.create();

    WebResource webResource = client.resource(path +"/" + filename);

    webResource.put(upload.getBytes());

    return "success";
}  
  • 启动两个服务器

 

SpringMVC跨服务器传输文件出现400错误解决

答案很简单 ,接收文件的另一个服务器不支持中文,也就是说文件名不能写中文否则就会报400错误。

解决方案无非就是两种,让文件服务器支持utf-8编码或者将文件名变成英文。

SpringMVC跨服务器传输文件:returned a response status of 405 Method Not Allowed

在你的Tomact服务器安装目录下的conf/web.xml配置文件中加上:


   

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>


   

<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>listings</param-name>

<param-value>false</param-value>

</init-param>

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springmvc上传下载 的相关文章

随机推荐

  • springboot整合⾕歌开源缓存框架Guava Cache使用

    Guava Cache使用 Guava Cache xff1a 歌开源缓存框架Guava Cache使用使用压测 具Jmeter5 x进行接口压力测试 xff1a 压测 具本地快速安装Jmeter5 x新增聚合报告 xff1a 线程组 gt
  • Android Studio之opencv极简环境配置(2022-1-30亲测有效)

    Android Studio之opencv环境配置 一 基础创建项目步骤二 OpenCv环境配置三 opencv体验 一 基础创建项目步骤 1 先创建一个app项目 2 选择Basic Activity 3 完成基础项目创建 4 运行一下看
  • VR游戏交互开发的一些体验

    VR游戏交互开发的一些体验 本文主要写Unity开发手游过程中VR交互输入控制的一些浅薄的经验交互方面 xff0c 头控和视线按钮依然较为主流 xff0c 可以获得传感器数据来获得输入除了实体按钮输入之外还可以探索其他交互方式 xff0c
  • python 实现批量post json数据测试

    服务器之前经常出现发消息就会宕机 xff0c 今天修改了部分之后 xff0c 就用python实现了一个批量post数据测试 直接上代码 url 是测试版 xff0c 你看到这份代码的时候 xff0c 应该已经不能用了 xff0c 童鞋需要
  • 函数

    xff08 1 xff09 模块是函数的集合 xff0c 类似于Java类 xff08 2 xff09 函数的作用 xff1a 提高代码复用性 xff08 3 xff09 函数的定义 xff1a def 函数名 代码 函数名符合命名规则 x
  • 元组

    xff08 1 xff09 tuple与列表类似 xff0c 不同之处在于元组不能修改 xff08 2 xff09 定于元组 xff0c 使用小括号 xff08 xff09 xff0c 数据之间用 xff0c 隔开 xff08 3 xff0
  • 字典

    xff08 1 xff09 描述物体的相关信息 xff08 2 xff09 字典是无序的对象集合 xff0c 列表是有序的对象集合 xff08 3 xff09 字典使用 定义 xff0c 使用键值对存储数据 xff0c 键值对之间用 xff
  • 字符串

    xff08 1 xff09 使用双引号定义字符串 xff08 2 xff09 使用单引号的情况 xff1a str 61 39 我的 强国号 xff08 3 xff09 字符串可以使用索引 xff0c 从 0 开始 str xff08 4
  • 大数据概述

    1 什么是大数据 xff1a 海量 xff0c 高增长率 xff0c 多样化 xff0c 分布式存储 43 分布式计算 43 弹性伸缩 2 大数据特征 xff1a Volume xff0c Variety xff0c Value xff0c
  • 大数据分析概述

    xff08 1 xff09 应用领域 xff1a 商业 制造业 媒体 趋势预测 决策支持 xff08 2 xff09 采集 ETL 实时数据采集 xff08 3 xff09 数据集成 xff1a 合并整理 xff0c 形成统一的数据视图 数
  • SQL概述

    xff08 1 xff09 方便各平台的数据库移植 xff0c 统一采用小写来定义数据库名和表名
  • 数据采集

    xff08 1 xff09 数据分类 xff1a 业务数据 xff0c 行业数据 xff0c 内容数据 xff0c 线上行为数据 xff0c 线下行为数据 xff08 2 xff09 数据来源 xff1a 企业系统 xff0c 机器系统 x
  • mybatis多表操作

    xff08 1 xff09 多表查询 用户和账户 xff0c 要求 xff1a 一个用户可以有多个账户 xff0c 一个账户只能属于一个用户 xff08 多个账户也可以属于同一个用户 xff09 步骤 xff1a 1 建立两张表 xff1a
  • centos .sh文件无法执行

    到sh文件目录下执行 sed i s r sh
  • Maven学习笔记

    xff08 1 xff09 标准目录结构 src main java目录 xff1a 核心代码部分 src main resources xff1a 配置文件部分 src test java xff1a 测试代码部分 src test re
  • JSTL学习笔记

    xff08 1 xff09 概念 xff1a JavaServer Pages Tag Library jsp标准标签库 xff08 2 xff09 作用 xff1a 用于简化和替换jsp页面上的Java代码 xff08 3 xff09 使
  • idea 开启 tomcat 热部署 的 具体流程 和 使用方式

    idea 开启 tomcat 热部署 的 具体流程 和 使用方式 https www cnblogs com c2g5201314 p 12275243 html https blog csdn net qq 41288095 articl
  • java 判断字符串是否为空

    四种判断为空表示方式 xff1a 1 str 61 61 null 2 34 34 equals str 3 str length 61 61 0 4 str isEmpty 1234 代码中的四种不为空的运用 xff1a if str 6
  • springmvc返回值

    xff08 1 xff09 返回字符串 xff08 2 xff09 void xff08 3 xff09 返回ModelAndView 把user对象存储到mv对象中 xff0c 也会把user对象存入到request对象 mv addOb
  • springmvc上传下载

    xff08 1 xff09 form表单的enctype取值是 xff1a multipart form data xff0c method取值是 xff1a post xff0c 提供一个文件选择域 xff08 2 xff09 sprin