PDA

View Full Version : نشان دادن عکس از بانک بصورت باینری



saeed31641
سه شنبه 23 دی 1393, 17:37 عصر
سلام دوستان
من میخواهم عکس که اپلود میشه بصورت باینری در بانک ذخیره بشه که مشکلی برای ذخیره شدن اون ندارم مشکلی اصلی من نمایش عکس هست .ایا مثالی دارین برای نمایش عکس.
اینم بگم من از modal dialog استفاده میکنم چیزی که تو ذهنم هست میخام ابتدا عکس اپلود بشه بعد با دکمه ای عکس نمایش داده بشه اگه مناسب بود ذخیره بشه.من عکس میگیرم تبدیل به باینری میکنم ولی تو نمایش کلا مشکل دارم ممنون میشه راهنمایی بفرمایید.

if (file != null)
{
byte[] Image;
using (var binaryReader = new BinaryReader(Request.Files["ImageData"].InputStream))
{
Image = binaryReader.ReadBytes(Request.Files["ImageData"].ContentLength);
}
model.Fpicnews = Image;

aroshanzamir
سه شنبه 23 دی 1393, 19:15 عصر
http://stackoverflow.com/questions/7390983/convert-from-binarydata-to-image-control-in-asp-net

saeed31641
سه شنبه 23 دی 1393, 19:53 عصر
http://stackoverflow.com/questions/7390983/convert-from-binarydata-to-image-control-in-asp-net

ممنون از سمت سمت سرور چطوری فرستاده میشه

aroshanzamir
سه شنبه 23 دی 1393, 21:00 عصر
یکی از فیلد های کلاس شما آرایه ای از بایت ها است ... که به مدل پاس داده می شود :
در View :


@{
var base64 = Convert.ToBase64String(Model.ByteArray);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}

<img src="@imgSrc" />

saeed31641
سه شنبه 23 دی 1393, 22:04 عصر
یکی از فیلد های کلاس شما آرایه ای از بایت ها است ... که به مدل پاس داده می شود :
در View :


@{
var base64 = Convert.ToBase64String(Model.ByteArray);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}

<img src="@imgSrc" />
دوست عزیز تو اون تابع اپل طبق گفته های شما من چی رو برگدونم
return

saeed31641
چهارشنبه 24 دی 1393, 14:03 عصر
خوب من خودم یه کارایی کردم حالا کد رو اینجا میزارم اگه یه زمانی کسی به مشکل خورد براش مفید باشه. من همون اول برای اپلود از جی کویری استفاده کرده



@using (Html.BeginForm("CreatePic", "News", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@if (Model.Fpicnews != null)
{
string imageBase64 = Convert.ToBase64String(Model.Fpicnews);
string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
<img src="@imageSrc" width="100" height="100" />
}
<div class="form-group">
<div class="col-md-10">
<img id="imgprvw" alt="مشاهد عکس در این قسمت" style="width:144px ; height:110px" />
</div>
</div>
<div class="form-group">
آپلود تصویر
<div class="col-md-10">
<input type="file" name="ImageData" id="ImageData" onchange='showimagepreview(this);' />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">

<input class="btn btn-primary btn-default" style="font-family:Tahoma; font-size:11px;display:none " onclick="location.href=@Url.Action("CreatePic", "News")" name="commit" value="ذخیره کردن عکس" type="submit" />

</div>
<div id="progress">
<div class="bar" style="width: 0%;"></div>
</div>
</div>
</div>
}

<style>.bar {
height: 18px;
background: green;
}

</style>
<script type="text/javascript">

function showimagepreview(input) {

if (input.files && input.files[0]) {

var filerdr = new FileReader();
filerdr.onload = function (e) {
var fsize = $('input[type="file"]')[0].files[0].size;
if (fsize >66000)
{
alert('اندازه فایل باید بیشتر از 60 کیلو نباشد');
return false;
}

$('#imgprvw').attr('src', e.target.result);
$('.btn-default').css("display", "block");;
}
filerdr.readAsDataURL(input.files[0]);
}
}

$(function(){
$('.btn-default').click(function () {

var file = $('input[type="file"]').val();
var exts = ['jpg', 'png', 'gif'];

// first check if file field has any value
if ( file ) {
// split file name at dot
var get_ext = file.split('.');
// reverse name to check extension
get_ext = get_ext.reverse();
// check file type is valid as given in 'exts' array
if ( $.inArray ( get_ext[0].toLowerCase(), exts ) > -1 ){
alert( 'با موفقیت ثبت شد' );
} else {
alert(' فایل نامعتبر می باشد!');
return false;
}
}
});
});

</script>



برای نمایش اون از سمت بانک .یعنی ویرایش:


[HttpGet]

public ActionResult RetrieveImage(News modal , int id)
{

TempData["id"] = id;

using (Context db = new Context())
{
News cnews = db._News.Where(x => x.ID_news == id).SingleOrDefault();
if (cnews != null)
{
modal.Fpicnews = cnews.Fpicnews;

}
}
//if (cover != null)
//{
// return File(cover, "image/jpg");
//}
// else

return View(modal);

}

/// <summary>
/// نشان دادن عکس
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
///
public byte[] GetImageFromDataBase(int Id)
{
var q = from temp in db._News where temp.ID_news == Id select temp.Fpicnews;
byte[] cover = q.First();
return cover;
}


/// <summary>
/// ذخیره عکس
/// </summary>
/// <param name="model"></param>
/// <returns></returns>D:\WebDevelope\Mvc-baker\Mvc-baker\Areas\admin\Models\login.cs
[HttpPost]
[AllowUploadSpecialFilesOnly(".jpg,.gif,.png")]
[ValidateAntiForgeryToken()]
public ActionResult CreatePic(News model)
{


{
SiteSession siteSession = this.CurrentSiteSession;
if (siteSession == null && Session["admin"] != "admin")
{
return RedirectToAction("Index", "../Home", new { culture = "value" });
}

int id = Convert.ToInt32(TempData["id"].ToString());
HttpPostedFileBase file = Request.Files["ImageData"];
if (file.ContentLength > 66000)
{
TempData["msg"] = "اندازه فایل حداقل 60 کیلو باید باشد";
return RedirectToAction("ListNews", "News");
}

var supportedTypes = new[] { "jpg", "jpeg", "png" };

var fileExt = System.IO.Path.GetExtension(file.FileName).Substri ng(1);

if (!supportedTypes.Contains(fileExt))
{
TempData["msg"] = "فرمت فایل مجاز نمی باشد";
return RedirectToAction("ListNews", "News");
}

savepic service = new savepic();
int i = service.UploadImageInDataBase(file, model, id);
if (i == 1)
{
TempData["msg"] = "آپلود فایل با موفقیت انجام شد";
return RedirectToAction("ListNews", "News");
}
else
{
TempData["msg"] = "آپلود فایل با موفقیت انجام نشد";
return RedirectToAction("ListNews", "News");
}
}


}