117.info
人生若只如初见

ASP.NET Stream如何使用

ASP.NET Stream 是一个用于处理文件上传和下载的类

  1. 首先,确保在项目中引用了 System.IO 命名空间。

  2. 创建一个用于处理文件上传的方法:

public void UploadFile(HttpPostedFileBase file)
{
    // 检查文件是否为空
    if (file == null || file.ContentLength == 0)
    {
        Response.Write("请选择一个文件");
        return;
    }

    // 获取文件的扩展名
    string extension = Path.GetExtension(file.FileName);

    // 为文件创建一个新的唯一名称
    string fileName = Guid.NewGuid().ToString() + extension;

    // 设置文件保存的路径
    string path = Path.Combine(Server.MapPath("~/Uploads"), fileName);

    // 将文件保存到服务器
    using (FileStream fileStream = new FileStream(path, FileMode.Create))
    {
        file.InputStream.CopyTo(fileStream);
    }

    Response.Write("文件上传成功");
}
  1. 创建一个用于处理文件下载的方法:
public void DownloadFile(string fileName)
{
    // 检查文件是否存在
    string path = Path.Combine(Server.MapPath("~/Uploads"), fileName);
    if (!File.Exists(path))
    {
        Response.Write("文件不存在");
        return;
    }

    // 设置响应头,以便浏览器知道这是一个文件下载请求
    Response.ContentType = GetContentType(fileName);
    Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
    Response.AddHeader("Content-Length", new FileInfo(path).Length.ToString());

    // 使用 Stream 将文件发送给客户端
    using (FileStream fileStream = new FileStream(path, FileMode.Open))
    {
        fileStream.CopyTo(Response.OutputStream);
    }
}

// 获取文件的 MIME 类型
private string GetContentType(string fileName)
{
    string extension = Path.GetExtension(fileName).ToLower();
    switch (extension)
    {
        case ".jpg":
        case ".jpeg":
            return "image/jpeg";
        case ".png":
            return "image/png";
        case ".gif":
            return "image/gif";
        case ".bmp":
            return "image/bmp";
        case ".txt":
            return "text/plain";
        case ".pdf":
            return "application/pdf";
        case ".docx":
            return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
        case ".xlsx":
            return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        case ".pptx":
            return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
        default:
            return "application/octet-stream";
    }
}
  1. 在 ASP.NET 页面上创建一个文件上传控件和一个按钮,以便用户可以选择文件并触发上传操作:
  1. 创建一个文件下载链接,以便用户可以下载文件:
下载文件

现在,当用户选择一个文件并点击上传按钮时,UploadFile 方法将文件保存到服务器的 “Uploads” 文件夹中。用户还可以点击下载链接来下载服务器上的文件。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fed1dAzsKAQRVAFM.html

推荐文章

  • asp.net core和asp.net区别有哪些

    ASP.NET Core和ASP.NET的主要区别在于它们的跨平台能力、性能、开发工具和API支持等方面。以下是ASP.NET Core和ASP.NET之间的一些关键区别:
    跨平台支持 AS...

  • asp.net如何获取当前域名

    在ASP.NET中,您可以使用HttpContext.Current.Request对象来获取当前请求的详细信息,包括域名。以下是一个示例代码片段:
    using System;
    using Syste...

  • asp.net与.net的区别有哪些

    ASP.NET是建立在.NET Framework上的一个用于构建Web应用程序的框架,而.NET是一个更广泛的概念,它是一个开发平台,提供了包括ASP.NET在内的多种技术和工具。以下...

  • asp.net mvc如何实现缓存机制

    在ASP.NET MVC中,实现缓存机制可以通过以下几种方法: 页面缓存(Page Caching):
    在视图文件中使用@Html.OutputCache指令来实现页面缓存。例如:
    @...

  • ASP.NET jqGrid的筛选和搜索

    ASP.NET jqGrid 是一个基于 jQuery 的网格控件,用于在网页上显示和操作数据。它提供了强大的筛选和搜索功能,帮助用户快速找到所需的信息。以下是如何在 ASP.NE...

  • ASP.NET jqGrid的排序和分页

    在ASP.NET中使用jqGrid进行排序和分页,你需要遵循以下步骤: 引入必要的库文件
    首先,确保在你的项目中引入了jqGrid的JavaScript和CSS文件。你可以从官方网...

  • ASP.NET jqGrid的自定义操作

    在ASP.NET中使用jqGrid时,可以通过自定义操作来实现一些特定的功能。以下是一些常见的自定义操作及其实现方法:
    1. 自定义按钮
    可以在jqGrid的导航栏...

  • ASP.NET jqGrid的数据绑定

    ASP.NET jqGrid 是一个基于 jQuery 的网格控件,用于在网页上显示和操作数据。要在 ASP.NET 中使用 jqGrid 进行数据绑定,你需要遵循以下步骤: 引入必要的库文件...