Как получить изображения базы данных и отобразить другую страницу в ASP.NET MVC 4
обзорная страница
=========
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <script src="../../Scripts/form.js" type="text/javascript"></script> <script> $(document).on("click", "#btnid", function (event) { event.preventDefault(); var fileOptions = { success: res, dataType: "json" } $("#formid").ajaxSubmit(fileOptions); }); </script> <script src="//code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script> <script type="text/javascript"> function ShowImagePreview(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { $('#<%=ImgPrv.ClientID%>').prop('src', e.target.result) .width(240) .height(150); }; reader.readAsDataURL(input.files[0]); } } </script> <div id="dialog"> @Html.ValidationMessage("DuplicateGroup") @Html.ValidationMessage("GroupSaved") </div> @using (Html.BeginForm("SubmitImage", "Carrer", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <fieldset> <div class="float-left"> <div id="dialog"> @Html.ValidationMessage("DuplicateImage") @Html.ValidationMessage("ImageSaved") </div> <center> <h2>Submit Image</h2> </center> <div class="editor-label"> @Html.LabelFor(Model => Model.strGroupId) </div> <div class="editor-field"> @Html.EditorFor(Model => Model.strGroupId) <div id="dialog"> @Html.ValidationMessageFor(Model => Model.strGroupId) </div> </div> <div class="editor-label"> @Html.LabelFor(Model => Model.strGroupName) </div> <div class="editor-field"> @Html.EditorFor(Model => Model.strGroupName) <div id="dialog"> @Html.ValidationMessageFor(Model => Model.strGroupName) </div> </div> <div class="editor-label"> @Html.LabelFor(Model => Model.SelectImage) </div> <input type="file" name="file" id="file" /> <div id="dialog"> @Html.ValidationMessage("CustomError") </div> <center> <input type="submit" value="Upload" /> </center> </div> </fieldset> } @Scripts.Render("~/bundles/jqueryval")
Код контроллера
====================
public class CarrerController : Controller { // // GET: /Carrer/ public ActionResult SubmitImage() { return View(); } [HttpPost] //public ActionResult SubmitImage(HttpPostedFileBase file, Carrer model) public ActionResult SubmitImage(Carrer model) { //string blnImageUploaded; if (model.file != null && model.file.ContentLength > 0) { try { string path = Path.Combine(Server.MapPath("~/UploadImages"), Path.GetFileName(model.file.FileName)); model.file.SaveAs(path); InsertMapDetails(model, path); //if (blnImageUploaded == true) //{ ViewBag.Message = "File uploaded successfully"; //} } catch (Exception ex) { ViewBag.Message = "ERROR:" + ex.Message.ToString(); } } else { ViewBag.Message = "You have not specified a file."; } return View(); } public ActionResult Save(FormCollection formCollection) { if (Request != null) { HttpPostedFileBase file = Request.Files["UploadedFile"]; if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); } } return View(); } public bool checkImageUploated(string strGroupId, string strGroupName, string strFullPath) //This method checks the valid image is uploaded in table or not. { bool blnValidImage = false; string connString = ConfigurationManager.ConnectionStrings["DBconnectionString"].ConnectionString; // Read the connection string from the web.config file using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); SqlCommand cmd = new SqlCommand("Update MAP set IMAGEPATH = '" + strFullPath + "' where GROUPID = '" + strGroupId + "' and GROUPNAME = '" + strGroupName + "' ", conn); blnValidImage = Convert.ToBoolean(cmd.ExecuteNonQuery()); return blnValidImage; } } public string InsertMapDetails(Carrer model, string strFullPath) { SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DBconnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "Insert into MAP (GROUPID,GROUPNAME,IMAGEPATH) values('" + model.strGroupId.Trim() + "','" + model.strGroupName.Trim() + "','" + strFullPath + "')"; cmd.Connection = con; try { con.Open(); cmd.ExecuteNonQuery(); con.Close(); return "Success"; } catch (Exception es) { throw es; } } Model Code =================== public class Carrer { [Required] [Display(Name = "GroupId")] public string strGroupId { get; set; } [Required] [Display(Name = "GroupName")] public string strGroupName { get; set; } [Display(Name = "Select Image")] public string SelectImage { get; set; } [Required] [Display(Name = "Choose File")] public HttpPostedFileBase file { get; set; } } } } }
Что я уже пробовал:
Теперь мой код предназначен только для загрузки изображений в базу данных. я не могу сделать отображение изображений базы данных на другой странице.., пожалуйста, помогите кому-нибудь
Sinisa Hajnal
Google how to read images from the database and put that on the page where you want to show it. В общем случае вам нужен байтовый массив, который будет представлять байты изображения, а затем растровый объект, который его получит.
Member 12753551
мне нужна строка imagepath, чтобы показать
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]