从byte[]打开任意文件类型

本文关键字:任意 文件 类型 byte | 更新日期: 2023-09-27 17:51:12

我有一个应用程序,它允许用户上传证书并将其附加到系统内的一个人。目前它被编写为只接受. pdf文件,但现在客户端希望能够灵活地将任何类型的文档上传到系统中。我已经设置了数据库来保存byte[]文件和文件扩展名,但我不知道如何使系统足够聪明,能够灵活地打开我扔给它的任何文件类型,而不需要对所有实例进行硬编码。什么好主意吗?

编辑:目前我正在做以下的事情。

private void createPDF(byte[] file, string Name)
{
    int fileSize = file.Length;
    Response.AppendHeader("content-length", fileSize.ToString());
    Response.ContentType = "application/pdf";
    if (!Name.Contains("."))
        Name = Name + ".pdf";
    Response.AddHeader("Content-Disposition", "attachment; filename=" + Name);
    Response.BinaryWrite(file);
    //Response.Clear();
    Response.Flush();
    Response.End();
}

然而,我现在需要能够发送扩展并打开它。文档需要能够被最终用户下载。我将限制上传,不允许任何恶意文件扩展名,认为这是一个给定的。谢谢大家,流感病毒让我很头疼,我无法思考…

从byte[]打开任意文件类型

octet-stream mime-type应该可以。

private void createFILE(byte[] file, string Name)
{
    int fileSize = file.Length;
    Response.AppendHeader("content-length", fileSize.ToString());
    Response.ContentType = "octet-stream";
    if (!Name.Contains("."))
        Name = Name + ".(your_extension)";
    Response.AddHeader("Content-Disposition", "attachment; filename=" + Name);
    Response.BinaryWrite(file);
    Response.Flush();
    Response.End();
}