- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在发布一个页面 URL
例如 mysite.com/disclaimer/someinfo
此页面显示协议(protocol),如果用户单击同意按钮,则 PDF 文件将作为附件流式传输。
这样做的目的是用户随后可以共享此 URL,但链接该链接的其他任何人也必须在下载文件之前阅读该协议(protocol)。实际文件没有 URL,但保存在服务器的其他位置,因此下载文件的唯一方法是单击“[同意]”按钮。
但是-我发现困难的是,在单击按钮并开始下载后,我希望页面“消失”。带有按钮的页面停留在屏幕上。理想情况下,他们会被重定向回他们来自的页面。我热衷于不需要 javascript 或 cookie。引用者存储在初始页面加载到表单上的隐藏字段中。
我尝试了不同的方法,尝试在标题中写入 307 重定向,文件向用户发出警告,表明他们的帖子数据正在被重定向。我下面的代码仅适用于支持元刷新的浏览器(例如 Firefox;IE7 不是 Chrome/Safari)
我可以看到为什么这不起作用的逻辑。对浏览器有一个响应,那就是预期的文件。向他们发送文件然后将浏览器重定向到另一个页面的正确方法是什么。来自用户 p.o.v. 的感觉一旦他们点击了按钮,这个“接受”页面就会消失。
我有:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.UrlReferrer != null & Request.UrlReferrer.ToString() != "")
{
Uri referrer = Request.UrlReferrer;
if (!IsPostBack)
{ hfReferrer.Value = Request.UrlReferrer.ToString(); }
}
}
protected void buttonAccept_Click(object sender, EventArgs e)
{
//stream file
Node nodeCurrent = Node.GetCurrent();
string fileName = nodeCurrent.GetProperty("documentFile").Value.ToString();
System.IO.FileInfo file = new System.IO.FileInfo(fileName);
if (file.Exists) //set appropriate headers
{
Response.Clear();
if (hfReferrer.Value !="")
{Response.AddHeader("Refresh", string.Format("3; URL={0}", hfReferrer.Value));}
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/pdf";
// write file to browser
Response.WriteFile(file.FullName);
Response.End();
}
最佳答案
我建议尝试稍微不同的行为。在 buttonAccept_Click 事件处理程序上,将用户重定向到感谢页面。在此感谢页面的 Page_Load 中有下载文件的代码。
这很容易实现,并为用户提供更好的体验。
关于asp.net - Response.WriteFile & Response.Redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092265/
我有一个包含以下内容的简单服务: import { Injectable } from '@angular/core'; import { Http, Response } from '@angula
在我的 Angular-12 应用程序中,我在服务中有以下代码: constructor(private http: HttpClient, private router: Router) {
我是android领域的新手,我想从响应json数组访问每个结果元素,但我无法做到这一点,我试图获取每个元素,但我只得到一个值“rohit1”是第一个元素。请帮助我。 我是 rohit parmar,
我正在用 java 编写 RESTful 服务,但是当我尝试使用 Resource 类时,显示以下错误:类型 Response.Response 构建器不可见。我不明白问题可能是什么,因为我已经导入了
在 Spring 应用程序中,我正在调用第三方服务,我正在发送 XML 请求并获取 XML 响应,当无法将该响应解析为 Java 对象时,我正确地获得了 XML 响应,我收到以下错误: org.spr
我正在发布一个页面 URL 例如 mysite.com/disclaimer/someinfo 此页面显示协议(protocol),如果用户单击同意按钮,则 PDF 文件将作为附件流式传输。 这样做的
我是 Camel 的新手。我一直在尝试将数据(文件中的 Json)提交到网络服务。这是我的代码: public static void main(String args[]) throws E
我有一个 HTTP 执行器类: Future future = service.apply(request).toJavaFuture(); 现在我想删除 ? extends其中的一部分,因为我不想让
我想将我所有的 http header 响应设置为这样的: response.headers["X-Frame-Options"] = "SAMEORIGIN" 我检查了this question ,
我们有两个 channel ,分别是 channelA 和 channelB。 在 channel A中我们有两个目的地 一个。第一个目的地将使用 XML 数据作为输入调用 channelB,并从 c
以下有什么区别 response.status(200).send('Hello World!'); 和这个 response.writeHead(200, {'content-type':'appl
我试图让Foundation在iPhone的浏览器上响应。我已经在手机上尝试过Safari和Chrome,它们都显示了 table 面布局。 但是,在 table 面上,如果缩小浏览器窗口,则会看到布
您好,当我在云代码中运行此作业时,我收到一条错误日志:Failed with: success/error was not called. 定义功能运行良好,但在作业日志中我有此错误日志。请协助我解决
我正在使用ozeki ng短信网关。我无法将任何短信发送到任何手机。请帮助我通过网络发送短信到手机 从客户端检测到一个潜在危险的Request.Form值(textboxError =“。设置此值之后
今天我在 WordPress 中遇到了问题。当我尝试创建一个新页面并在 WordPress 管理部分上传新图像时,我尝试找出解决方案,但我没有得到它......所以经过一个小时的打磨后我得到了一个解决
我过去常常通过刷新和结束来结束对客户端的传输,如下面的代码所示。 Response.Flush(); Response.End(); 但是,Response.End() 将缓冲内容刷新到客户端让我印象
我正在编写一个在单击按钮时显示对话框窗口的函数:这里是与状态和 statusCode 相关的代码段。 if(response.status>300){
从资源清理的角度,为什么会有Response.Close()和Response.Dispose(),哪个更全面(调用另一个)? 最佳答案 在提供这两种方法的情况下,Dispose 的实现应该调用 Cl
在我注意到我的代码可能在以经典模式设置的服务器上运行之前,我一直在使用 Response.Header.Add()。在这种情况下,异常“此操作需要 IIS 集成管道模式”。被提出。 我切换到 Resp
Response.End() 生成 ThreadAbortException。 使用 HttpContext.Current.ApplicationInstance.CompleteRequest 代
我是一名优秀的程序员,十分优秀!