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

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

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

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

怎么实现呢?能实现么

6个回答

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

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

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

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

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

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

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

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

    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('上传失败');
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!