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();

    }

今、PDFファイルをダウンロードする必要があるというコントローラーに渡されたIDに基づいてそれらをダウンロードし直したいですか?

これは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

return File(result.Content, result.Extension.Replace(".", ""));

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 に答える