Как я могу хранить изображения в таблицах базы данных? Я создал таблицу, поэтому хочу хранить там изображения.
Я сохранил несколько изображений в папке "Изображения"в обозревателе решений.
Мой код выглядит следующим образом (код за файлом) -
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.IO; namespace Shop { public partial class addimage : System.Web.UI.Page { SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Sayan\\Documents\\Saanvi.mdf;Integrated Security=True;Connect Timeout=30"); protected void Page_Load(object sender, EventArgs e) { } protected void Buttonuploadimage_Click(object sender, EventArgs e) { FileUpload f = new FileUpload(); if (f.HasFile) { string str = f.FileName; f.PostedFile.SaveAs(Server.MapPath(".") + "//Images//" + str); string path = "~//Images//" + str.ToString(); con.Open(); SqlCommand cmd=new SqlCommand("Insert into Images values('" + path + "')", con); cmd.ExecuteNonQuery(); con.Close(); Labeluploadimage.Text = "Image uploaded successfully"; } else { Labeluploadimage.Text = "Pls. upload an image"; }
После размещения точки останова &" debug "я увидел, что f.HasFile показывает"False".
Мой исходный файл выглядит следующим образом -
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="addimage.aspx.cs" Inherits="Shop.addimage" %> <!DOCTYPE html> <title> .auto-style1 { width: 100%; } .auto-style2 { width: 127px;} <div> </div> <table class="auto-style1"><tbody><tr><td class="auto-style2">Upload</td><td> <asp:FileUpload ID="imageupload" runat="server" visible="true" EnableViewState="False" /> </td></tr><tr><td class="auto-style2"> </td><td> <asp:Button ID="Buttonuploadimage" runat="server" OnClick="Buttonuploadimage_Click" Text="Upload Image" OnDataBinding="Buttonuploadimage_Click" /> </td></tr><tr><td class="auto-style2"> </td><td> </td></tr><tr><td class="auto-style2"> <asp:Label ID="Labeluploadimage" runat="server"> </td><td> </td></tr></tbody></table> <asp:GridView ID="GridViewimageupload" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" /> <EditRowStyle BackColor="#2461BF" /> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#EFF3FB" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#F5F7FB" /> <SortedAscendingHeaderStyle BackColor="#6D95E1" /> <SortedDescendingCellStyle BackColor="#E9EBEF" /> <SortedDescendingHeaderStyle BackColor="#4870BE" />
Краткое изложение проблем -
1. изображение не загружается, когда я запускаю страницу в браузере. Вместо этого он говорит: "файл не выбран". Поэтому я понимаю, что условие if не выполняется, даже если я выбираю изображение. Выполняется только другая часть.
2. я не могу сохранить изображение в таблице базы данных.
Что я уже пробовал:
Я попробовал следующий код на C#, чтобы загрузить изображения, а затем сохранить их в таблице базы данных.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]