Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从asp.net页面下载.CSV/.TXT,无需提示_Asp.net_Http_Download_Handler - Fatal编程技术网

从asp.net页面下载.CSV/.TXT,无需提示

从asp.net页面下载.CSV/.TXT,无需提示,asp.net,http,download,handler,Asp.net,Http,Download,Handler,我目前有一个处理程序,当导航到时会提示用户下载文件 我需要以编程方式禁用此框,并允许在点击该页面时自动下载文件。阅读这些页面文本,然后以某种方式重写自己的文件会更容易吗 那将是最好的方法,我将如何着手去做 目前我有 Sub ProcessRequest(ByVal context as HttpContext) Implements IHTTPHandler.ProcessRequest Dim filename as String = myfile.csv context.Response.C

我目前有一个处理程序,当导航到时会提示用户下载文件

我需要以编程方式禁用此框,并允许在点击该页面时自动下载文件。阅读这些页面文本,然后以某种方式重写自己的文件会更容易吗

那将是最好的方法,我将如何着手去做

目前我有

Sub ProcessRequest(ByVal context as HttpContext) Implements IHTTPHandler.ProcessRequest
Dim filename as String = myfile.csv
context.Response.ContentType = "text/csv"
context.Response.WriteFile(filename)
End Sub
这将提示用户在开始下载之前选择保存位置和文件名等

编辑:

如以下回复中所述,这必须是可能的。下载站点在您导航到该站点时会自动开始下载

我曾遇到一些其他网站提到IE设置可以更改?我不知道这是否有助于找到解决方案


你不能。您无权在未经其他用户许可的情况下将文件强制下载到其他用户的计算机上,因此浏览器故意阻止。出现提示的全部原因是,用户可以意识到网站正在尝试将某些内容推送到他们的机器上,并允许他们选择允许它。

您不能。您无权在未经其他用户许可的情况下将文件强制下载到其他用户的计算机上,因此浏览器故意阻止。出现提示的全部原因是,用户可以意识到网站正在尝试将某个内容推送到他们的机器上,并允许他们选择允许该操作。

签出。在内部,它似乎使用小程序或其他机制来保存,但它可能适合您的需要。

请查看。在内部,它似乎使用小程序或其他机制来保存,但它可能适合您的需要。

是的,您可以。您可以在页面上创建一个表单,隐藏它并通过javascript下载它。它可能看起来像下面这样。您设置了一个html表单,并在页面加载后通过Javascript提交该表单。我刚刚在Chrome/Firefox/IE上进行了测试。想想看,你看到的那些下载站点会显示这样的信息:“如果没有点击这里,你的下载应该在5秒钟内开始……”。如果任何浏览器设置可能会阻塞,您可能希望包含直接链接

注意:在其他响应代码之前使用Response.Clear()

<h2>Index</h2>

<!-- Where /Download/GetFile will cause your code as posted to execute. -->

<form action="/Download/GetFile" id="form1" method="post"></form>

<script type="text/javascript">

    document.getElementById("form1").submit();

</script>
索引
document.getElementById(“form1”).submit();

是的,你可以。您可以在页面上创建一个表单,隐藏它并通过javascript下载它。它可能看起来像下面这样。您设置了一个html表单,并在页面加载后通过Javascript提交该表单。我刚刚在Chrome/Firefox/IE上进行了测试。想想看,你看到的那些下载站点会显示这样的信息:“如果没有点击这里,你的下载应该在5秒钟内开始……”。如果任何浏览器设置可能会阻塞,您可能希望包含直接链接

注意:在其他响应代码之前使用Response.Clear()

<h2>Index</h2>

<!-- Where /Download/GetFile will cause your code as posted to execute. -->

<form action="/Download/GetFile" id="form1" method="post"></form>

<script type="text/javascript">

    document.getElementById("form1").submit();

</script>
索引
document.getElementById(“form1”).submit();

您的问题非常不清楚,可能不可能。您的问题非常不清楚,可能不可能。是的,但您可以通过正确设置标题在浏览器中呈现(有效地删除提示,但仍然呈现内容而无需干预)。不过,我不确定OP想要哪种情况,所以由他们进一步解释。您的回答仍然会提示用户下载该文件。是的,但您可以通过正确设置标题在浏览器中渲染(有效地删除提示,但仍然渲染内容而无需干预)。但是我不确定OP想要哪种情况,所以这将由他们进一步解释。你的回答仍然会提示用户下载该文件。那么你是说在IE中,这不会给用户提示“你想打开或保存该文件吗?”因为这是我测试代码时得到的提示,这听起来像是OP试图避免的。好的一点,如果我以前做过,这是不可能的。当我有机会的时候,我会尝试你的解决方案,看看是否能得到同样的结果。我在一篇超级用户文章中添加了一个链接,这样做了(你的设置是否需要这样设置才能忽略提示?)迈克,你说得对。我可能误解了。当然,您可以编写的任何代码都不能覆盖浏览器设置,例如提示保存等。如果有用,我将留下帖子。请注意,如果您可以控制使用哪个客户端,chrome不会提示下载,因为它只是文本(不确定如果使用.exe会发生什么)。那么您是说在IE中,这不会给用户提示“是否要打开或保存此文件?”因为这是我测试此代码时得到的提示,这听起来像是OP试图避免的。好的一点,如果我以前做过,这是不可能的。当我有机会的时候,我会尝试你的解决方案,看看是否能得到同样的结果。我在一篇超级用户文章中添加了一个链接,这样做了(你的设置是否需要这样设置才能忽略提示?)迈克,你说得对。我可能误解了。当然,您可以编写的任何代码都不能覆盖浏览器设置,例如提示保存等。如果有用,我将留下帖子。请注意,如果您可以控制使用哪个客户端,chrome不会提示下载,因为它只是一个文本(不确定如果.exe会发生什么)。