我使用控制器中的以下代码
将几个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下载代码,wat我需要添加更多
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"];
}
答案 0 :(得分:3)
这是我的pdf下载代码,wat我需要添加更多
返回一个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类型和文件名也可能来自您的数据库。在这个例子中,我对它们进行了硬编码,但你可以调整这段代码。
答案 1 :(得分:0)
返回文件(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");
}
答案 2 :(得分:0)
public ActionResult GetPdf(int id)
{
ProjectProfile projectprofile = db.ProjectProfiles.Find(id);
var image = projectprofile.pdf;
return File(image, "application/pdf");
}