如何在文件下载后重定向页面
本文关键字:重定向 文件下载 | 更新日期: 2023-09-27 18:23:59
我想在下载文件后重定向页面。但该文件只下载不重定向页面
Document doc = new Document();
doc.Save("Sample.docx", FormatType.Docx, HttpContext.ApplicationInstance.Response, HttpContentDisposition.Attachment);
return RedirectToAction("Home", "Home");
可以通过返回一个多部分/混合响应来实现这一点,其中第一部分是要下载的文件,第二部分是带有要重定向到的url的META http equiv="refresh"标记。
这个解决方案在Mozilla Firefox上运行良好(在42.0版本上测试),但不确定其他浏览器。
下面是一个未经修饰的例子,说明如何在RubyonRails上做到这一点:
_multipart_response_boundary = '---------------------------8142823132435752456881845357'
_multipart_body = '_multipart_response_boundary' + "'r'n"
_multipart_body << 'Content-Disposition: attachment; filename="foo_bar.pdf"' + "'r'n"
_multipart_body << 'Content-Type: application/pdf' + "'r'n"
_multipart_body << "'r'n" + 'file contents' + "'r'n"
_multipart_body << '_multipart_response_boundary' + "'r'n"
_multipart_body << "'r'n" + '<html><head><META http-equiv="refresh" content="0;URL=https://www.example.com"></head><body></body></html>' + "'r'n"
_multipart_body << "'r'n" + '_multipart_response_boundary' + "--'r'n"
render(:content_type => ('multipart/mixed; boundary=' + _multipart_response_boundary), :text => _multipart_body)
我会考虑用ajax发出下载请求,并让您的指导操作处于成功块中。控制器不能有两个响应。