网页上下载文件提示框(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());

转载于:https://www.cnblogs.com/longling2344/p/5408442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值