SQL Server數據庫里圖片以二進制格式的image類型存儲,存入時先轉換成二進制數據,取出時由二進制轉換成image/jpg格式才能顯示
存入:
視圖代碼,需要一個上傳文件的控件
@using (Html.BeginForm(
"
Index
"
,
"
NewImg
"
, FormMethod.Post,
new
{ enctype =
"
multipart/form-data
"
}))
{
if
(@ViewBag.ImgId !=
null
)
{
<img src=
"
@Url.Action(
"
ShowImg
"
,
"
Image
"
, new { id = ViewBag.ImgId })
"
width=
"
111
"
height=
"
111
"
alt=
"
img
"
/>
<br />
<br />
}
<input type=
"
file
"
name=
"
imgUserProfile
"
id=
"
imgUserProfile
"
/>
<br />
<br />
<input type=
"
submit
"
value=
"
upload img
"
/>
}
在控制器中,接收到傳入的圖片文件,以byte類型存入數據庫
public
ActionResult Index(HttpPostedFileBase imgUserProfile)
{
try
{
using
(
var
context =
new
newpicEntities())
{
var
imgData =
new
pict1();
//
var
imgLength =
imgUserProfile.ContentLength;
var
imgByte =
new
byte
[imgLength];
imgUserProfile.InputStream.Read(imgByte,
0
, imgLength);
imgData.pict
=
imgByte;
context.AddTopict1(imgData);
context.SaveChanges();
ViewBag.ImgId
=
imgData.id;
ViewBag.Result
=
"
success
"
;
}
}
catch
(Exception e)
{
ViewBag.Result
=
e;
}
return
View(
"
Index
"
);
}
讀取并顯示數據庫中圖片:
控制器
public
ActionResult ShowImg(
int
id)
{
var
image = (
from
m
in
db.pict1
where
m.id ==
id
select
m.pict).FirstOrDefault();
var
stream =
new
MemoryStream(image.ToArray());
return
new
FileStreamResult(stream,
"
image/jpg
"
);
}
視圖
<
img
src
="@Url.Action("
ShowImg","Image",new{id
= item.id})"
height
="117px"
width
="144px"
alt
=""
/>
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

