zoukankan      html  css  js  c++  java
  • 网页上下载文件提示框(vb.net)

        Public Sub downLoadFile(ByVal fPath As String)
            Dim fileInfo As System.IO.FileInfo = New System.IO.FileInfo(fPath)
            Response.Clear()
            Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlEncode(fileInfo.Name.ToString()))
            Response.AddHeader("content-length", fileInfo.Length.ToString())
            Response.ContentType = "application/octet-stream"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.WriteFile(fPath)
        End Sub
            public async Task<FileStreamResult> DownFile(string fileName)
            {
                var url = "http://boldseas.com/image/pro/"+ fileName;
                var http = new HttpClient();
                Stream x = await http.GetStreamAsync(url);
                return File(x, "application/octet-stream", Server.UrlEncode(fileName));
            }

    方式一:

    public FileStreamResult DownFile(string filePath, string fileName)
    {
          string absoluFilePath = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] +      filePath);
           return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
    }

    方式二:

    public ActionResult DownFile(string filePath, string fileName)
    {
    filePath = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["AttachmentPath"] + filePath);
    FileStream fs = new FileStream(filePath, FileMode.Open);
    byte[] bytes = new byte[(int)fs.Length];
    fs.Read(bytes, 0, bytes.Length);
    fs.Close();
    Response.Charset = "UTF-8";
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
    Response.ContentType = "application/octet-stream";

    Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(fileName));
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
    return new EmptyResult();

    }

    View调用:

    <href="/Document/DownFile?filePath=@item.Value&fileName=@item.Key">下载</a>  

    其实主要是让浏览器直接下载文件而不是打开文件。
    要做两步。
    一就是把响应头的类型设置成application/octet-stream
    二就是设置HTTP响应头的名字为Content-Disposition,设定值为attachment; filename=theFilename。这里的theFileName就是文件下载对话框里面的默认文件名。

    Response.ClearContent();
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode("qrcode.png", System.Text.Encoding.UTF8));
    Response.BinaryWrite(ms.ToArray());
  • 相关阅读:
    RESTful API 设计最佳实践
    Linux给目录创建软链接的技巧
    KVM资源划分分配技巧
    SpringBoot无法启动,Process finished with exit code 0
    Shell中EOF内容转义
    TeamViewer运行在Windows Server 2008下连接时错误提示:正在初始化显示参数
    CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
    Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步
    Spring Boot项目的Logback配置文件使用yaml格式
    Shell脚本里的双冒号是什么意思
  • 原文地址:https://www.cnblogs.com/longling2344/p/5408442.html
Copyright © 2011-2022 走看看