zoukankan      html  css  js  c++  java
  • 下载(打开)PDF文件 代码

    网上的代码很多,但现在大多数都是Framework 3.5的啦,对于2.0,2.5有的方法不是很兼容,花了半个小时才找到一个合适,现在记录如下:

    注意:不适合网络路径,只适合本地文件, 网络路径请参考我另一篇Blog

    public void DownloadFile(string strFileNamePath)
        {
            long chunkSize = 102400;
            byte[] buffer = new byte[chunkSize];
            //long dataToRead=0;
            FileStream stream = null;
            try
            {
                FileInfo info = new FileInfo(strFileNamePath);
                Response.Clear();
                stream = new FileStream(strFileNamePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                Response.Clear();
                Response.AddHeader("Content-Length", stream.Length.ToString());
                Response.ContentType = "application/pdf";
                long fileLength = stream.Length;
                int size = 10240;//10K一--分块下载,10K为1块
                byte[] readData = new byte[size];
                if (size > fileLength)
                    size = Convert.ToInt32(fileLength);
                long fPos = 0;
                bool isEnd = false;
                while (!isEnd)
                {
                    if ((fPos + size) >= fileLength)
                    {
                        size = Convert.ToInt32(fileLength - fPos);
                        isEnd = true;
                    }
                    readData = new byte[size];
                    stream.Position = fPos;
                    stream.Read(readData, 0, size);
                    Response.BinaryWrite(readData);
                    Response.OutputStream.Flush();
                    fPos += size;
                }
                stream.Close();
                Response.OutputStream.Close();
                Response.End();//非常重要,没有这句的话,页面的HTML代码将会保存到文件中
                Response.Close();
            }
            catch (Exception)
            {
                if (stream != null)
                {
                    stream.Close();
                    stream = null;
                }
            }
    
        }
  • 相关阅读:
    @property
    UIViewController卸载过程(ios6.0以后)
    UIViewController卸载过程(ios6.0之前)
    UIViewController启动过程
    意淫原理,还是很有意思的
    协议
    多线程理解
    内存溢出与内存泄露
    jquery:实例方法
    计划,模型
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2690759.html
Copyright © 2011-2022 走看看