0

我在我的控制器中使用以下代码将几个 pdf 文件以二进制格式存储在我的数据库中,

    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        Image newImage = new Image();
        newImage.MimeType = file.ContentType;          

        var binaryReader = new BinaryReader(file.InputStream);
        newImage.Data = binaryReader.ReadBytes(file.ContentLength);
        binaryReader.Close();
        objImage.InsertImage(newImage.Data);

        return View();

    }

现在我想根据传递给控制器​​的 id 下载它们,应该下载 pdf 文件?

这是我的pdf下载代码,我需要添加更多吗

    public ActionResult Download(int id)
    {
        DataSet da = new DataSet();

        da = objImage.getUserImage(id);
        DataTable dt = new DataTable();
        dt = da.Tables[0];
        Byte[] imagedata=(Byte[])dt.Rows[0]["UsImage"];



    }
4

3 回答 3

3

这是我的pdf下载代码,我需要添加更多吗

返回一个 ActionResult:

public ActionResult Download(int id)
{
    ...
    byte[] imagedata = (byte[])dt.Rows[0]["UsImage"];
    return File(imagedata, "image/png");
}

如果您希望浏览器弹出“另存为”对话框而不是内联显示图像,请指定文件名:

public ActionResult Download(int id)
{
    ...
    byte[] imagedata = (byte[])dt.Rows[0]["UsImage"];
    return File(imagedata, "image/png", "foo.png");
}

显然 MIME 类型和文件名也可能来自您的数据库。在此示例中,我对它们进行了硬编码,但您可以调整此代码。

于 2013-01-24T07:43:27.147 回答
0

返回文件(结果。内容,结果。扩展。替换(“。”,“”));

public ActionResult Download(int id)
{
    DataSet da = new DataSet();

    da = objImage.getUserImage(id);
    DataTable dt = new DataTable();
    dt = da.Tables[0];
    Byte[] imagedata=(Byte[])dt.Rows[0]["UsImage"];


    return File(imagedata, "image/png");
}
于 2013-01-24T07:45:40.030 回答
0
    public ActionResult GetPdf(int id)
    {

        ProjectProfile projectprofile = db.ProjectProfiles.Find(id);
        var image = projectprofile.pdf;
        return File(image, "application/pdf");
    }
于 2013-04-02T04:23:09.060 回答