使用asp.net mvc下载文件

2023-11-29

我尝试使用下面的代码。但这没有用。

public FileResult download(string path)
{
   return File(path, "application/pdf", Server.UrlEncode(path));
}

我的 Ajax 代码是:

function fileDownload(path) { 
    $.ajax({ 
       url: '/Home/download', 
       data: { path: path }, 
       type: 'POST', 
       async: false, 
       success: function (data) { } 
    }); 
}

您通常希望将文件名映射到服务器上的物理路径,例如假设用户选择文件Foo.pdf所有内容文件都在~/Content folder:

public FileResult download(string path)
{ 
    string actualPath = Server.MapPath("~/Content/" + path);
    return File(actualPath, "application/pdf", Server.UrlEncode(path)); 
}

但是,从安全角度来看,允许用户直接指定文件名是值得怀疑的 - 您可能需要考虑其他替代方案,例如可用文件的表或字典,并强制浏览器通过以下方式选择可用文件之一key - 这样恶意用户就无法通过网络钓鱼获取不打算提供服务的文件。

编辑,看到OP想要Ajax后

Ajax 文档应该可以工作,尽管以这种方式下载不会呈现 PDF - 您需要将文档传递给可编写脚本的 PDF 查看器或类似的查看器。

您可以生成一个简单的链接、按钮或图像,而不是使用 ajax 文档,用户可以单击它们来调用控制器操作并下载 PDF:

 @Html.ActionLink("Click to download", "download", new {path = "MyNicePDF.pdf"})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用asp.net mvc下载文件 的相关文章

  • 集成引导模板的 ASP .Net MVC Web 应用程序

    我知道对于这个问题我可能会得到太多的反对票 但我只是找不到解决我的问题的教程 我在 Visual Studio 2013 中创建了一个 ASP Net MVC 项目 新项目 gt ASP NET Web 应用程序 gt MVC 我正在尝试更
  • MVC 将 PartialViewResult 渲染为字符串

    免责声明 我编辑了问题 因为我改变了过程 但它并没有改变任何问题 我正在尝试获得一个PartialViewResult呈现为字符串 我尝试使用RenderRazorViewToString这个问题的方法将视图渲染为字符串 https sta
  • 从操作写入输出流

    由于一些奇怪的原因 我想将 HTML 从控制器操作直接写入响应流 我理解MVC分离 但这是一个特例 可以直接写入吗HttpResponse溪流 在这种情况下 哪个IView控制器操作应该返回对象吗 我可以返回 空 吗 我使用了一个派生类Fi
  • 如何设置cookie值?

    我正在执行以下操作来设置 cookie 值 HttpCookie mycookie new HttpCookie mycookie mycookie Value value1 Case sensitivity mycookie Expire
  • Jquery 对话框部分视图服务器端验证“保存”按钮单击

    我有一个显示数据的表格 表格的每一行都有编辑按钮 单击编辑按钮时 将出现一个 jquery 对话框 其中包含用于编辑用户信息的表单以及保存和取消按钮 表单只不过是部分视图 按钮是部分视图的一部分
  • 如何将敏感数据从视图传递到控制器

    为了构造一个包含大量信息的实体 我需要执行一系列表单提交 每次我从控制器返回视图时 我都需要传递一些有关尚未建立的实体的 id 现在 我将这些信息注入隐藏字段 并在发回服务器时继续构建实体 这样的场景持续了好几次 我对这种传递敏感信息的方式
  • 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?

    创建新的 NET 对性能 或其他 有何影响 如果有 ResourceManager根据每个请求new ResourceManger myResourceType FullName myResourceType Assembly 与在 Des
  • Flutter - 使用 Android 下载指示器下载文件

    我正在尝试下载邮件系统的附件 为此 我正在使用颤振下载器 https pub dartlang org packages flutter downloader但我需要通过我的 http 客户端传递我的令牌 我认为这个插件没有处理这个问题 我
  • 在子网站中使用邮政和 Hangfire

    我一直在尝试在我的 MVC5 站点上使用 Postal 当我将我的网页托管为子网站时 即http localhost 子站点 http localhost Subsite我收到错误 虚拟路径 映射到另一个应用程序 这是不允许的 我已经将其调
  • MVC3 RESTful API 路由和 Http 动词处理

    我想为我的 MVC3 应用程序构建 RESTful Json Api 我需要帮助处理多个 Http Verbs 以操作单个对象实例 我读过 研究过 尝试过的内容 MVC 属性 HttpGet HttpPost等 允许我拥有一个具有多个共享相
  • 在 MVC 应用程序中配置 NHibernate 二级缓存

    我有一个使用 NHibernate 的 MVC3 应用程序 一切都很顺利 直到我开始尝试添加二级缓存 浏览网页几个小时后 我终于找到了我认为正确的 dll NHibernate Caches SysCache2 dll 并将其添加到我的项目
  • 在 Asp.net MVC4 中访问 ViewBag 时出现 NullReferenceException

    我正在尝试访问ViewBag我认为的数据如下 span class small ViewBag BreadCrumb span 我正在发送那个ViewBag来自代码的数据 例如 ViewBag BreadCrumb topic Catego
  • MVC 中的 HttpPost 与 HttpGet 属性:为什么使用 HttpPost?

    所以我们有 HttpPost 这是一个可选属性 我知道这会限制调用 因此只能通过 HTTP POST 请求进行调用 我的问题是我为什么要这样做 想象一下以下情况 HttpGet public ActionResult Edit int id
  • 我应该迁移到 ASP.NET MVC 吗?

    我刚刚听了 StackOverflow 团队的第 17 期播客 他们对ASP NET MVC http www asp net mvc 我决定去看看 但首先 我想确定这是值得的 我已经为几天后开始的项目创建了一个基础 Web 应用程序 供其
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • ASP.NET MVC - HybridViewResult (ViewResult /PartialViewResult)

    是否可以构建一个依赖于 Ajax 请求或 Http 请求返回的混合 ViewResultPartialViewResult or ViewResult IsAjaxRequest gt 返回 PartialViewResult IsAjax
  • EF4 和 SQL Server 2000

    我使用 EF4 和 SQL Server 2005 开发了我的网站 但当转移到临时站点时 发现他们使用 SQL Server 2000 现在我收到此错误 我认为该错误与 SQL Server 2000 有关 Incorrect syntax
  • Azure git 部署 - 第二个程序集中缺少引用

    我正在尝试将 Bitbucket 部署设置到 Azure 网站 我成功链接了 Bitbucket 和 Azure 但是当我推送到 Bitbucket 时 我在 Azure 站点上收到以下错误 如果我单击 查看日志 它会显示以下编译错误 D
  • C# 查询两个数据库的数据

    我目前有一个查询 我正在从两个不同的数据库获取数据 这些数据被附加到一个名为 accountbuys 的列表中 我的第一个表有三个数据条目 3个想要购买股票的帐户 下一张表有 17 个数据点 购买 17 只股票 I am merging t
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi

随机推荐

  • 如何触发mapView:didSelectAnnotationView

    我是 iPhone 开发新手 我一直在阅读有关如何使谷歌地图注释标注窗口接受换行符的几个问题 我读过的每个教程都要求我启动mapView didSelectAnnotationView方法 但我不知道如何触发这个 我尝试过的事情包括 将方法
  • JUNG:按顺序放置树节点

    将节点添加到我的DelegateTree 它们在视觉上并不按照我添加它们的顺序出现 我一直在寻找解决方案 但还没有找到任何东西 有谁知道如何改变这个吗 提前致谢 EDIT 我的代码 Generate a visualization of t
  • 如何使文字环绕图像?

    我正在设计一个博客 我正在使用 CarrierWave 和 MiniMagic 进行图像文件上传 截至目前 每篇文章的顶部都会显示一张图片 我首先尝试将图片大小调整为矩形 但似乎即使我在调整大小下更改尺寸 图片也始终显示为正方形 现在 我正
  • 使用 EclipseLink 和 Hibernate (JPA2.1) 生成架构 - @ForeignKey 被忽略

    我正在测试 JPA2 1 和新的 模式生成 功能 为此 我在 HyperSQL 数据库下测试了两种实现 EclipseLink 2 5 2 M1 是参考实现 休眠4 3 我对实现没有任何偏好 甚至对性能也没有偏好 我测试了 EclipseL
  • Tomcat 7 更新后继续使用旧的 jsp

    我们 我公司的人员 不久前为 Tomcat 创建了一个应用程序 它使用 servlet 和 jsp 作为 GUI 我们刚刚完成了一次更新 其中一个 jsp 发生了很大的变化 但是 当我们在一台计算机上替换 war 文件时 它会继续使用旧的
  • 在 Magento 1.6.2 中登录/注销时如何从 top.links 中删除链接

    我进行了很好的搜索并找到了customer logged in and customer logged out标签 但我无法让它们正常工作 我确信这是我对它们的误解 我的目标是隐藏区块中的登录 帐户和结账链接top links当用户处于no
  • R(https) 中 getSymbols 函数使用错误 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 Running library quantmod getSymbols BSESN src yahoo 产生以下错误消息 Error in download file pas
  • 通过cmd上传和更新谷歌驱动器中的文件[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有任何脚本可以让 Google Drive 每天自动上传 转换和更新 csv 文件 我按照 Google 站点上的 JDBC 上的脚本进行操作
  • 为什么 Stream Parallel() 不使用所有可用线程?

    我尝试跑100Sleep使用 Java8 1 8 0 172 Stream parallel 并行任务在自定义 ForkJoinPool 内提交 有 100 多个可用线程 每个任务都会sleep1秒 鉴于 100 个睡眠可以并行完成 我预计
  • HTML 选择。 Select2 + ng-click = 不起作用?

    我在用AngularJS and Select2创建一个漂亮的下拉菜单 我已经包括了ng click在 选择标签的 选项标签中 但是 ng click 在处于Select2
  • 了解 Dart 1.11 的新appendHTML清理

    我刚刚升级到 Dart 1 11 我不太明白发生了什么 appendHTML 我有一个非常大的项目 使用 dart 和 appendHTML 经常使用 我已经在这个应用程序上工作了一年多了 但现在没有任何效果了 我的控制台看起来像这样 Re
  • BUG:IIS7 托管请求

    我不知道是否也应该将这个问题发布到 ServerFault 因为它是关于 IIS 配置的 在 IIS7 中 我们可以通过以下方式告诉模块运行托管内容 从而加快静态内容服务
  • 在 Microsoft Access 2010 表单和报告中显示多个附件

    最初 我很高兴在 Access 2010 中发现附件字段 这个功能在美学上让我内心的数据库纯粹主义者感到厌烦 但我内心的懒惰在这里负责 从表面上看 它确实看起来可以使一个我当前的项目更容易 更简单 令人高兴的是 它会在表单和报告上自动显示图
  • Objective-C:如何找到数组中最常见的字符串?

    我有一个来自在线数据库的字符串数组 我试图确定最常用的单词 数组内的值会有所不同 但我想检查我正在使用的任何集合或单词中最常见的单词 如果理论上我有以下数组 NSArray stringArray NSArray arrayWithObje
  • 防止执行“继承的”信号处理程序

    当许多派生组件频繁使用该功能时 在 基本 组件中定义信号处理程序非常漂亮 但是 在 QML 中 在派生组件中安装新的处理程序does not替换原来的处理程序 它只是堆叠在它的上面 由于处理程序对于每个信号来说并不是唯一的 它们只是连接 并
  • SQLCLR 程序集部署失败,因为程序集验证失败

    万一其他人遇到这个问题 错误 SQL72014 Net SqlClient 数据提供程序 创建程序集 程序集 Assembly Name 失败 因为程序集 Assembly Name 验证失败 检查引用的程序集是否是最新的 并受信任 对于
  • 设置会话文化

    我的应用程序的每个用户都会选择他们的国家 地区 然后将其存储在 cookie 中并存储以供以后请求 一切正常 但我需要在会话开始时设置文化 我目前正在尝试将 web config 中的区域性设置为 en GB 然后使用 Global asa
  • 如何指定整个路由器的依赖关系?

    class User BaseModel name str token str fake db User name foo token a1 User name bar token a2 async def get user by toke
  • 附加到 NSTextView

    我有一个NSTask 与NSPipe设置 在后台运行 我想在内容进入时输出它们NSTextView output 我正在使用的代码是 NSMutableAttributedString str NSMutableAttributedStri
  • 使用asp.net mvc下载文件

    我尝试使用下面的代码 但这没有用 public FileResult download string path return File path application pdf Server UrlEncode path 我的 Ajax 代