从asp.net页面下载.CSV / .TXT没有提示

时间:2011-12-23 15:41:58

标签: asp.net http download handler

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

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

这将是最好的方法,我将如何去做。

目前我有

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设置的网站可能会被更改?我不知道这是否可以用于寻找解决方案

Super User disable Popup for download

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

是的,你可以。您在页面上创建一个表单,隐藏它并通过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>

答案 2 :(得分:0)

结帐jQuery.twFile。在内部,似乎使用Applet或其他机制进行保存,但它可能符合您的需求。