【Spring MVC】请问上传和下载,能在一个请求中完成吗?

这么个功能,一个请求,上传完之后直接下载

这样的我想做这一个功能,用户上传一个excel,然后我验证里面的内容,如果有错误的,我就把错误的信息保存在下,写在一个文件里,然后让他直接下载

效果就是用户上传一个excel,里面有错误,我页面上提示“该文件内容有错误,错误信息已经下载到您的计算机,请查看”,然后就自动下载一个文件给用户

怎么实现呢?能实现么

0

6个回答

你所说的一个请求,就是用户只进行一下操作,并不是你代码发了几次请求,对吧?

基于这一点,你完全可以在上传成功后回调中,继续调用下载,比如ajax,可以在success方法中,嵌套ajax方法,继续调用下载代码。

0

当然可以,你没看过别人上传一张图片,之后就显示出来了,原理差不多,上传文件,保留一份文件,生成一份文件信息,之后调用下载方法就可以了。

0

可以的,这个需求应该这么搞:
1、用户上传文件,你收到文件之后,校验文件
2、返回json格式的状态码和下载地址
3、如果不对,前端收到状态信息,先展示,然后前端下载文件

这事应该是前端做,后端做不合适

0

上传-->处理-->输出文件流

0

上传和下载分别是关于request和response对象,各做各的就可以。

0

能的。
先上传再,上传成功后下载。可以下载上传好的文件也可以下载之前的文件。

    var files = $('#file');
        var file = files[0];
        var formData = new FormData();
        formData.append('file', file);
  $.ajax({
                type: 'post',
                data: {},
                url: '/api/uploadFile',
                async: true,
                cache: false,
                contentType: false,
                processData: false
            }, function (responseData) {
                if (responseData.statusCode === 200) {
                    window.open("/api/file/download/' + responseData.file.uuid);
                  console.log('上传成功,即将下载');
                                    }
                                    console.log('上传失败');
                } else {
                                console.log('上传失败');
}
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SpringMvc文件上传、下载和拦截器
SpringMvc文件上传、下载和拦截器
springMvc的一次请求过程
一次完整的请求过程:  
springMVC从接受请求到完成响应的过程
sprinmvc大致的工作原理如下: **简要说明:** 1.用户发起请求到前端控制器。 2.前端控制器通过处理器映射器查找hander。 3.处理器映射器返回执行链。 a)hander对象 b)拦截器(集合) 4.前端控制器通处理器适配器包装,执行hander对象。思考:为什么要通过适配器来执行? 5.通过模型hander处理业务逻辑。 6.处理业务完成后,返回ModeAndView对象,其中有
SpringMVC上传资源加密、解密
加密类:  public class FileEFS {      /**       * 文件上传,加密输出到制定路径       * @param file  上传文件       * @param encFilePath 输出路径       * @throws Exception       */      public static void EncFile(MultipartFile ...
Servlet和SpringMVC处理请求流程
很尴尬 之前面试被问懵逼了 吓得我赶紧在回顾一下一、还是先说最简单的Servlet的处理流程吧基本的话有四大部分: 1.初始化阶段(调用init()方法)一旦Servlet实例被创建,Web服务器会自动调用init(ServletConfig config)方法来初始化该Servlet。其中方法参数config中包含了Servlet的配置信息,比如初始化参数,该对象由服务器创建。配置了两个初始
SpringMVC:处理一个http请求的完整过程
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。 Dispatch
SpringMVC的文件上传下载(同步和异步)
pom.xml 配置 <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency&amp
springmvc下载excel文件,通过post方式传大量参数
https://github.com/cheegoday/DownloadExcel
关于Spring MVC 文件大小超过限制后浏览器无响应解决方案
最近在做一个ssm小项目,项目中有上传功能,本来是一个激情平常的功能。但当我配置好上传文件的大小后,一测试发现问题了。即使我项目中捕获到了MaxUploadSizeExceededException这个异常,但是浏览器确无响应了。测试几次之后仍然是这种问题,于是网上查了各种资料。最终发现是Tomcat的问题,因为tomcat遇到这个异常后出现了死循环。到Apache官网发现了这个bug的介绍,截图
通过springmvc接口请求上传文件
本文主要介绍如何通过http请求springmvc接口,来实现上传文件到服务器,或者读取文件里的内容,实现一些业务需求。 我们知道,上传文件到服务器,可以通过jsp表单提交到接口。这里介绍的是通过http请求实现上传,不通过前台页面jsp表单。具体用apache.commons包下的httpclient来实现。代码如下: /** 将文件作为参数上传到接口中 @param url @para...
测试SpringMVC中的控制器
测试SpringMVC中的控制器测试控制器最直接的办法可能就是构建并部署应用,然后通过浏览器来进行访问,但是自动化测试可能会给你更快的反馈和更一致的独立结果,所以,就需要针对控制器鞋一个测试。假设有如下一个控制器 @Controller public class HelloController { @RequestMapping(value = "/hello.do",
Spring MVC快速入门02
先来看看一个简单的用户登录Demo:工程目录结构: User类实体: package com.model;public class User { private int id; private String userName; private String password; public User() { super(); } publi
使用SpringMVC实现用户图片上传
许多案例都需要后台接受用户上传的图片并在显示信息时回调,使用SpringMVC可以很简单实现这个功能 1.配置虚拟目录 在开发时,如果我们把客户端上传的文件都放在服务器内的一个文件夹中,然后重新发布项目,图片存放的文件夹就会被覆盖掉,客户端的图片会消失造成数据丢失。因此我们需要把上传的资料都放在一个服务器外的文件夹,然后配置虚拟目录去调用。 配置方法: 在tomcat上配置图片虚拟目录,在...
SpringMVC上传文件配置
SpringMVC上传文件配置
springmvc实现文件上传和下载
springmvc实现文件上传的步骤: 1.页面上,通过input来准备file组件,该标签,必须给定name属性值(该name不能和实体类的属性名一致) 同时,要求form表单必须给定一个属性:enctype="multipart/form-data" 用户名: 密码: 头像:
spring mvc一次提交两次请求问题
宽为限 紧用功 工夫到 滞塞通 这里我只有一次商品添加请求,数据库里却添加了两条数据,第二条是空的,说明程序执行了两次add方法
SpringMVC操作Excel上传下载
依赖jar包 maven工程可以直接将下面两个依赖拿走,不谢! <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId&am
SpringMvc文件上传和下载
最近博主在做SpringMvc文件上传和下载的功能实现,上网查了很多资料很多都不太符合理想,找啊找,终于找到一个可以用的,然后再此基础上,我加以改进,可以支持多文件上传,而且代码非常精简,大家可以看看.           http://pan.baidu.com/s/1o7Oo4NC 原码下载 首先需要导入jar包: 然后,在applicatinContext.xml中添加上传和下载的...
SpringMVC-请求的处理流程
前文讲过,在SpringMVC中,对于请求的处理涉及到三个Servlet:HttpServletBean、FrameworkServlet和DispatcherServlet。一、HttpServletBean在SpringMVC的初始化过程中,HttpServletBean负责获取Servlet的配置参数,并放入SpringMVC的环境中,但在请求的处理上,HttpServletBean并没有做任
SpringMVC文件上传、拦截器与异常处理
文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring 用Jakarta Commons FileUpload 技术实现了一个MultipartResolver 实现类:CommonsMultipartResovler,因此需要依赖commons-fileupload.jar。 Spring MVC 上下文...
用SpringMVC框架实现图片上传与下载
1、新建一个Maven webapp项目,引入需要用的夹包,pom.xml文件的依赖包如下: net.coobird thumbnailator 0.4.8 junit junit 3.8.1 test
SpringMVC 做请求参数的类型转换
一.简单转换-Spring自带的转换Editor以接收Date类型为例:        @RequestMapping("/testFunc") public String testFunc(String name,Date now){ System.out.println(name); System.out.println(now); return "welcome"; } @InitB...
spring mvc 多线程并发访问总结
spring中的bean默认是单例的,这样如果我们写的bean是有状态的就会产生线程安全问题,有状态的bean就是指类中存在实例变量,服务器会为每个请求开一个线程,这样当一个线程修改了实例变量,另一个线程访问的变量就是被修改过的,这就是线程不安全的。        我们以controller为例,下面是测试代码 @Controller public class testController {
SpringMvc项目Form提交包含上传文件的请求以及回调
最近自己手动搭建一个SpringMvc的项目,成功后第一个功能模块为文件上传功能,Form表单提交. 其中遇到的问题在下面一一列出以及解决方式: 1.静态资源没法加载 html中的css以及js文件加载不了 Spring中静态资源的加载有两种方式(据我了解) 1.1 在xml中配置: 1.2 java注解的方式: 2.Form表单提交无法回调 对于这个问题,
springmvc+spring线程池处理http并发请求数据同步控制问题
springmvc+spring线程池处理http并发请求数据同步控制问题
springMVC文件上传以及用ajax方式提交
spring mvc上传文件的简单例子,这有几个需要注意的地方 1.form的enctype=”multipart/form-data” 这个是上传文件必须的 2.需要依赖的jar包(网上找)具体代码: 1.spring的配置文件 1)springmvc.xml<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.s
SpringMVC+Ajax页面无刷新提交多个文件和数据
我还是决定记录一下。 该JS由ajaxfileupload.js改造,原理是使用了Ifream,所以页面不会刷新。 改造后的ajaxfileupload.js: jQuery.extend({ createUploadIframe: function (id, uri) { var frameId = "jUploadFrame" + id; if (window.ActiveXObject) { var io = document.
springmvc上传下载图片和文件
springmvc上传下载图片和文件
SpringMVC的请求属于单例模式
首先明白:什么是单例,什么是多例。 单例:所有请求只生成一个对象。线程不安全 多例:每次请求都会重新生成一个对象,线程安全。 SpringMVC默认的是单例的,所以是线程不安全。 如果想要保证线程安全则有两种方式: 1、声明成多例:在Controller加上@Scope(“prototype”) 2、用ThreadLocal类 ThreadLocal会为每一个线程提供一个独立的变量...
SpringMVC 请求响应过程讲解
在这里spring 的bean初始化与注入在这里不在复述,今天就只讲 mvc请求响应的过程。 首先我们确定mvc请求的一个入口,dispatcherServlet 的doservice 方法,这里只讲一些比较重要的一些处理。设置request一些属性,然后调用doDispatch(request, response);在此方法中有以下步骤 1.获取请求的相关处理器:getHandler(pro...
spring-test单元测试(三)-spring mvc请求测试
上篇文章中我们介绍了如何在struts环境下,进行模拟action的请求测试,以及我们使用了EasyMock框架,来模拟对象的行为。这篇文章我们会继续介绍spring mvc环境下如何对controller进行单元测试。另外我们带来一种全新的mock框架mockito。   一、准备工作,引入以下maven坐标             org.springframework      
spring mvc 一次请求过程跟踪(一)
spring mvc 一次请求过程跟踪项目背景Spring Boot 主方法 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class UploadA
Tomcat和SpringMVC结果梳理和请求处理流程小结
顶层结构 最顶层是Server,由Catalina管理,包含load,start,stop用来管理整个服务器的生命周期 一个Server包含多个Service Service主要包含两部分:Connector和Container,一个Service只有一个Container,但可以又多个Connector,用于提供不同的连接请求(如http和https) Connector处理连接相关,提供Soc
HttpClient + SpringMVC 实现多张图片上传
客户端代码 /* * @param picPaths 需要上传的文件路径集合 * * @param requestURL 请求的url * * @return 返回响应的内容 */ public static void uploadFile(String[] picPaths, String requestURL) { String boundary = ...
springmvc基础:(3)拦截器与文件上传
Springmvc与Struts2的区别       springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。       springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。       Struts采用值栈存储...
SpringMVC下载上传Excel文件
前端框架:Bootstrap,后端框架:SpringMVC、Spring 下载、上传的页面如下: 模版内容如下: 下载、上传的前端代码如下: &amp;amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;batchUpdateDigestModal&amp;quot; role=&amp;quot;dialog&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;amp;gt
Spring框架是如何判断是否是上传文件请求呢
根据不同的参数接收类型来分析: 1MultipartFile 源码分析: (1)如果MultipResolve不为null,就调用CommonMultipartResolve的isMultipart方法判断是否是上传文件请求 (2)如果不是MultipartHttpServletRequest请求,并且不包含MultipartException异常,就会调用CommonMultipartR
SpringMvc实现分片上传,断点续传,进度条上传,秒传,分段下载
一、需求背景 大文件上传,需要分片,并实现断点续传,进度条显示,秒传功能。下载时可以暂停,分段下载。 二、实现原理 1.分片:前端浏览器将文件根据设定的规则分割成多片小文件,一片一片的上传到服务器。 2.秒传:前端浏览器截取文件的前面几m和最后几m字节又或者全部字节进行md5编码,可以生成文件的唯一md5码,根据这个md5码可以唯一确定一个文件,上传文件时同时将该md5码传送到后台,又或者
在SpringMVC的Controller中实现上传下载实现
上传: /** * 添加文件 * @param flag * @param document * @param mv * @param session * @return */ @RequestMapping(value=&quot;/document/addDocument&quot;) public ModelAndVie...
springmvc返回文件的正确写法(下载文件)
springmvc返回文件的正确写法(下载文件)