PDA

View Full Version : سوال: ذخیره کردن Url تصاویر داخل دیتابیس



Shamim832
چهارشنبه 23 دی 1388, 23:53 عصر
با سلام وخسته نباشید
کسی می تونه بگه که چطوری گالری تصاویر با استفاده از پایگاه داده می توان ایجاد کرد؟
البته خودم یه چیزایی بلدم مثل:
1- ذخیره کردن تصاویر در یک پوشه : سوال :این پوشه در کجا باید باشد؟داخل پوشه وب سایت؟
2- ایجاد یک جدول شامل فیلدهای آی دی - نام تصویرکه نوعش ایمیج است - آدرس تصویرکه نوعش text است؟
سوال: Url تصویر را چطوری داخل دیتابیس ذخیره کنم؟
در قسمت برنامه چه کارهایی رو انجام بدم ؟
آیا در وب سایتم از یک datalist یا چیز دیگه استفاده کنم؟
در این مورد یه سورس آموزشی ندارین ؟به صورت کامل وجامع وبه زبان

ironman
پنج شنبه 24 دی 1388, 01:27 صبح
در این مورد اگه کمی جستجو منید به نتایج خوبی میرسید...
در مورد fileupload جستجو کنید

yekta64
پنج شنبه 24 دی 1388, 09:44 صبح
سلام دوست عزيز
ببين شما اول بايد يه پوشه مثلا به اسم Image توي برنامه درست كني كه همنطور كه خودت گفتي اين پوشه توي Website بايد باشه براي رست كردن پوشه رو ي اسم برنامه كليك راست كن و new Folder رو انتخاب كن

خوب حالا توي design برنامه يه كنترل FileUplode و Repeater و دو Button قرار بده اسم يكي رو BtnSave و يكي ديگه رو btnShow قرار بده

خوب حالا از يك تابع استفاده مي كنيم به نام Uoload_Image براي خوندن عكس استفاده مي كنيم و توي رويداد دكمه btnSave اون تابع براي ذخيره عكس توي پوشه و ديتابيس فراخواني مي كنيم:

البته توي اين كد شما بادي متغيير ImagePath رو به صورت سراسري تعريف كني چون براي ذخيره در ديتابيس به اون نياز داري


Private Sub Upload_Image()
If FileUpload1.PostedFile IsNot Nothing AndAlso FileUpload1.PostedFile.FileName <> "" Then
ImagePath = "~/WebSite1/Image/" & FileUpload1.FileName.ToString()
FileUpload1.SaveAs(Server.MapPath(ImagePath))

Else
ImagePath = " "
End If
FileUpload1.Dispose()
End If
End Sub


و رويداد دكمه btnSave


Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Upload_Image()
Dim con As New SqlConnection
Dim cmd As New SqlCommand
connectionString="Data Source=(local);Initial Catalog=test;Integrated Security=True"
con.open()
dim str as string="INSERT INTO ImageCallery (ImageUrl) VALUES ('"& ImagePath &"')"
cmd=new sqlcommand(str,con)
cmd1.ExecuteNonQuery()
con.Close()
EndSub


خوب تا اينجا عكس توي پوشه و ديتابيس ذخيره شد
حالا مي خوايم عكس ها رو بخونيم و توي يه Repeater نمايش بديم:

در ابتدا repater رو به صورت زير ايجاد مي كنيم:


<asp:Repeater ID="Repeater1" runat="server" >

<ItemTemplate>
<div style="border-style:inset; width:160px; height:160px; position:relative; float:right; text-align:center;" >
<br />
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("ImageUrl")%> '/>
<br />

</div>
</ItemTemplate>
</asp:Repeater>



حالا از يه تابع براي نمايش اطلاعات در ريپيتر استفاده مي كنيم و اين تابع رو توي PageLode فراخواني مي كنيم:




Sub ShowRepeater()
Dim con As New SqlConnection
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim cmd As New SqlCommand
Dim str As String
con.ConnectionString = connectionString="Data Source=(local);Initial Catalog=test;Integrated Security=True"/>
con.Open()
str = "SELECT * FROM ImageCallery"
da = New SqlDataAdapter(str, con)
da.Fill(ds, "ImageCat1")
Repeater1.DataSource = ds
Repeater1.DataBind()
con.Close()
End Sub


و اينم رويداد Page_load:



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If IsPostBack = False Then
ShowRepeater1()
End If
End Sub


اميدوارم توضيحات به كارتون بياد.
موفق باشيد.