这篇文章主要介绍了ASP.NET实现推送文件到浏览器的方法,可实现将文件推送到浏览器供用户浏览或下载的功能,需要的朋友可以参考下

本文实例讲述了ASP.NET实现推送文件到浏览器的方法。分享给大家供大家参考。具体分析如下:

这里主要实现从服务器到浏览器,推送文件,提供用户下载/浏览的功能。

提示: 在AJAX UpdatePanel里面将无效。如果代码从按钮单击事件中被调用,该按钮需要在 AJAX UpdatePanel的外部。

/// <summary>
/// Downloads (pushes) file to the client browser.
/// **** NOTE **** Cannot be done from inside an AJAX UpdatePanel control.
/// </summary>
/// <param name="fullFilePath">The full file path of the file</param>
protected void DownloadFile(string fullFilePath)
{
  // Gets the File Name
  string fileName = fullFilePath.Substring(fullFilePath.LastIndexOf('\\') + 1);
  byte[] buffer;
  using (FileStream fileStream = new FileStream(fullFilePath, FileMode.Open))
  {
    int fileSize = (int)fileStream.Length;
    buffer = new byte[fileSize];
    // Read file into buffer
    fileStream.Read(buffer, 0, (int)fileSize);
  }
  Response.Clear();
  Response.Buffer = true;
  Response.BufferOutput = true;
  Response.ContentType = "application/x-download";
  Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
  Response.CacheControl = "public";
  // writes buffer to OutputStream
  Response.OutputStream.Write(buffer, 0, buffer.Length);
  Response.End();
}

ASP.NET实现推送文件到浏览器的方法的更多相关文章

  1. 通过scp批量推送文件到远程目录

    [root@openfire1 script]# cat test.sh  #!/bin/bash   #通过scp推送文件到远程目录 for ip in `cat iplist`  do       ...

  2. 键盘侠Linux干货| 使用SSH方式推送文件至github仓库

    前言 作为一名优秀的计算机从业人员,相信大家github应该都知道吧.(优秀的代码托管工具) 但是由于平常使用的https方式克隆的本地仓库,每次git push时都需要输入帐号密码才能将我们修改的文 ...

  3. git推送文件到gitee

    注册gitee账号 设置姓名.个人空间地址 点击头像旁边的加号,新建仓库 安装git # 设置姓名和邮箱,姓名是注册gitee时设置的姓名,邮箱是注册gitee的邮箱 git config --glo ...

  4. git推送文件到远程仓库

    远程仓库未创建 git init 初始化一只本地仓库 把你的项目扔进去(或者基于初始化仓库建立项目vue init webpack demoxxxx) git status //查看状态 git ad ...

  5. Git推送文件时,出现的Couldn't load this key(OpenSSH SSH-2 private key (old PEM format))

    在进行推送到远程仓库的过程中遇到的一个错误. 解决方法: 找到这个位置 然后打开文件所在位置 再打开这个文件然后再 导入成功 然后点击save private key这个按钮 就可以成功的生成一个文件 ...

  6. Git 推送文件到远程仓库

    Configure Git for the first time: git config --global user.name "xxxxx xx"git config --glo ...

  7. ASP.NET服务器推送及前后台实时交互

    一:项目需求 页面需要做一个上传Excel功能,并处理Excel中的数据到数据库中 这是一个较为漫长的过程 这时我需要在页面上显示处理进度的提示,给用户一个良好的体验 比如给用户提示“正在上传文档”, ...

  8. Git远程推送文件太大的error解决

    error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errfno 10054 方法1: 改成ssh推送 方法2: 把推送的缓 ...

  9. asp.net 客户端上传文件全路径获取方法

    asp.net  获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他 ...

随机推荐

  1. vue - check-versions.js for semver

    引入的是一个语义化版本文件的npm包,其实它就是用来控制版本的,详情见:https://www.npmjs.com/package/semver 用谷歌翻译npm文档 semver.valid('1. ...

  2. canvas光晕

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. onWindowFocusChanged重要作用(得到/失去焦点call) 、

    onWindowFocusChanged重要作用 Activity生命周期中,onStart, onResume, onCreate都不是真正visible的时间点,真正的visible时间点是onW ...

  4. ubuntu14.04无法连接有线连接问题

    在windows系统下关闭有线网卡的关机,自动唤醒功能即可

  5. sklearn 随机森林方法

    Notes The default values for the parameters controlling the size of the trees (e.g. max_depth, min_s ...

  6. BootStrap modal() 如何根据返回的HTML宽度自动调整宽度?

    首先声明,如果真的这么做了也就失去了 bootstrap 多分辨率适配的好处.bootstrap 的 modal 窗口能够自动在不同分辨率下用不同的宽度,这就是它的特色呢. 以默认大小的 modal ...

  7. Java并发编程(四):线程安全性

    一.定义 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 二.线程安 ...

  8. Atitit.获取某个服务 网络邻居列表 解决方案

    Atitit.获取某个服务 网络邻居列表 解决方案 原理,带入某个ip扫描从0---255 很快,多线程几秒就可以出来. 使用CountDownLatch来join线程.. 返回  [{ " ...

  9. IOS,objective_C中用@interface和 @property 方式声明变量的区别

    转自:http://www.cnblogs.com/letmefly/archive/2012/07/20/2601338.html 一直有疑问,在objective_C中声明变量会有 2种方式,今天 ...

  10. Oracle 版本号说明

    Oracle 的版本非常多,先看11g的一个版本说明: 注意: 在oracle 9.2 版本号之后, oracle 的maintenance release number 是在第二数字位更改. 而在之 ...