الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في حفظ مسار الصورة

بدأه ضضياء1 في 16 يونيو 2009 · 7 رد · 919 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

أنا عامل موقع وب وفيه المجلدات التالية Admin,Member,Image

الموقع هو بيع منتجات و يقوم الموقع باظهار صورة كل منتج

ضمن مجلد ال Admin عامل صفحة اضافة منتج تحتوي على detailsveiw مربوط ب Sqldatasource لادخال البيانات في جدول product ضمن ال database

ضمن ال detailsveiw حوات احد الحقول الى template و سويته Fileupload حيث من خلاله يستطع ال Admin استعراض الصور و اختيارصورة المنتج اللي عم بيدخله بحيث يتم حفظ الصورة

ضمن مجلد ال images و اسمها في الجدول product بحقل images

بس وقت التجريب عم يقلي انو مسار الصورة غير موجود

هذا هو الكود الخاص بال detailsveiw

Protected Sub DetailsView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertEventArgs) Handles DetailsView1.ItemInserting

'Access the fileupload2 in Template

Dim Fileupload2 As FileUpload = Me.DetailsView1.FindControl("FileUpload2")

If Not (Fileupload2.HasFile = False) Then 'Check to make sure we actually have a file to upload

Dim fileName As String = Fileupload2.FileName

Dim savepath As String

Dim strFileName As String

Dim strLongFilePath As String = Fileupload2.PostedFile.FileName

Dim intFileNameLength As Integer = InStr(1, StrReverse(strLongFilePath), "")

strFileName = Mid(strLongFilePath, (Len(strLongFilePath) - intFileNameLength) + 2)

Select Case Fileupload2.PostedFile.ContentType 'Make sure the specified file is imagefile

Case "image/pjpeg", "image/jpeg", "image/bmp", "image/dib", "image/jpg", "image/jpe", "image/jfif", "image/tif", "image/tiff", "image/png", "image/gif" 'Make sure we are getting a valid JPG image

savepath = Server.MapPath("Images\product\" & fileName) 'Make sure file is not existed

If Dir(savepath) <> "" Then

If MsgBox("file already exist please change the name of image") Then

MsgBox("Operation has been cancelled") 'Cancel the Operation

e.Cancel = True

Exit Sub

End If

End If

Me.SqlDataSource1.InsertParameters("Logo").DefaultValue = Fileupload2.FileName.ToString ' set the Logo Paramete's value same as the fileupload2 filename

Fileupload2.PostedFile.SaveAs(Server.MapPath("Images\Product\" & fileName)) 'save to server

Case Else

'Not a valid jpeg image

MsgBox("The file you specified is Not a valid image")

e.Cancel = True

End Select

Else

'No thing specified

MsgBox("you did Not Specify anyimage ")

e.Cancel = True

End If

End Sub

End Class

بصراحة أنا لقيت حل للمشكلة بس ما عجبني الحل كان اني انشئ مجلد ال product ضمن مجلد images ضمن مجلدال Admin وغير المسار من Server.MapPath("Images\product\" & fileName) إلى Server.MapPath("Admin\Images\product\" & fileName)

لأانو الصور ماعاد بتظهر للزبون فقط للAdmin لأاني عامل Access rule على مجلد الadmin فقط لل admin group

أرجو من لديه الاجابة اسعافي بها

اني اسلم مشروع للجامعة و مضطر كتتييرررررررر

#2

السلام عليكم ورحمة الله وبركاته

الموضوع بسيط ان شاء الله

نفترض ان لديك صورة اسمها

Pic.gif موجودة داخل مجلد images وتريد عرضها على اداة image1

فيكون الكود كالتالي

Image1.ImageUrl = "~/images/Pic.gif";

أرجوا أن يكون هذا هو المطلوب

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#3

المشكلة عندي انه اساسا لا يقوم بالحفظ ضمن مجلد ال Image اما يطالبني بالحفظ صمن Admin/Images

#4
ضضياء1 كتب:
المشكلة عندي انه اساسا لا يقوم بالحفظ ضمن مجلد ال Image اما يطالبني بالحفظ صمن Admin/Images

أو بالأصح اني بس غير مسار الحفظ للمسار اللي عم يطلبه ما عاد حدا بيقدر يشوف الصورة لا ال Admin انه بمجلده و انا طبعا عامل صلاحيات على مجلد ال Admin انو بس ال Admin بيحقله يشوفه

وبالتالي عندي متصفح الموقع و ال member ما بيقوا يشوفوا الصورة

وبس ادخل ك Aadmin تظهر الصور

#5

السلام عليكم ورحمة الله وبركاته

يبقى ببساطة تخلي كل الصور في مجلد واحد وتحطه في الفولدر الرئيسي لموقعك

واذا فرضنا ان في صفحة موجودة داخل مجلد الـ Admin يبقى مسار الصورة بالشكل ده

Image1.ImageUrl = "~/../images/Pic.gif";

وبالطريقة دي يبقى كل الناس تقدر تشوف الصور

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#6

مرحبا انا عم تعبك معي اخي الكريم

بس يمكن انا صايغ السؤال بصيغة ضعيفة لذلك سوف اعيد صياغته الأن:

أنا عم ادخل معلومات المنتج من خلال detialsview , حولت حقل الصورة الى Template و جعلته نمط FileUpload

أنا ضمن الكود طالب مسار الحفظ (باللون الأحمر) يكون

savepath = Server.MapPath("Images\product\" & fileName)

بس وقت أدخل الموقع كمدير Admin و حاول اضافة منتج جديد مع صورة له يقول لي ان جزء من المسار غير موجود وتظهر هذه الرسالة

Could not find a part of the path 'E:\p\WebSite1\Admin\Images\Company Logo\pro.jpg'.

(أنا حافظ المشروع على القرص E و صورة المنتج اللي عم حاول دخلها هي pro.jpg)

فخطر لي ان أضع مجلد ال Images و مجلد ال Product اللي ضمنه معا ضمن مجلد ال Admin , النتيجة كانت مذهلة فقد تم حفظ الصورة ضمن E\Admin/Images\Product وتم أظهارها ضمن عنصر ال Image حيث وضعت

<asp:Image ID="Image1" runat="server" ImageUrl="~/Admin/Images/pro.jpg" />

ولكن المشكلة هي أن الصورة لاتظهر عند تصفحي للموقع كزائر أ و member و لا تظهر لإ عندما أدخل كمدير Admin و السبب في ذلك لأني عامل صلاحيات على مجلد ال Admin (لا أحد يستطع اقراءة الكتابة و التعديل غير ال Admin)

وبما أن الصورة تم حفظها في مجلد ال admin فلا أحد يستطيع مشاهدتها.

أعتقد أن الحل يكمن بانه عند أدخال صورة جديدة لازم تنحفظ مباشرة ضمن ال "Images\product " و ليس ضمن ال "Admin\Images\product"

ياريت اذا بتعرف كيف في ادخل ك Admin و أحفظ الصورة ضمن مجلد ال Images تخبرني لأانه دائما تظهر لي هذه الرسالة :

Could not find a part of the path 'E:\p\WebSite1\Admin\Images\Company Logo\pro.jpg'.

ممنونك كتييررر

هذا الكود:

'Access the fileupload2 in Template

Dim Fileupload2 As FileUpload = Me.DetailsView1.FindControl("FileUpload2")

If Not (Fileupload2.HasFile = False) Then 'Check to make sure we actually have a file to upload


Dim fileName As String = Fileupload2.FileName
Dim savepath As String
Dim strFileName As String
Dim strLongFilePath As String = Fileupload2.PostedFile.FileName
Dim intFileNameLength As Integer = InStr(1, StrReverse(strLongFilePath), "")
strFileName = Mid(strLongFilePath, (Len(strLongFilePath) - intFileNameLength) + 2)

Select Case Fileupload2.PostedFile.ContentType 'Make sure the specified file is imagefile
Case "image/pjpeg", "image/jpeg", "image/bmp", "image/dib", "image/jpg", "image/jpe", "image/jfif", "image/tif", "image/tiff", "image/png", "image/gif" 'Make sure we are getting a valid JPG image
savepath = Server.MapPath("Images\product\" & fileName) 'Make sure file is not existed
If Dir(savepath) <> "" Then
If MsgBox("file already exist please change the name of image") Then
MsgBox("Operation has been cancelled") 'Cancel the Operation
e.Cancel = True
Exit Sub
End If
End If


Me.SqlDataSource1.InsertParameters("Logo").DefaultValue = Fileupload2.FileName.ToString ' set the Logo Paramete's value same as the fileupload2 filename

Fileupload2.PostedFile.SaveAs(Server.MapPath("Images\Product\" & fileName)) 'save to server


Case Else
'Not a valid jpeg image
MsgBox("The file you specified is Not a valid image")
e.Cancel = True
End Select


Else
'No thing specified
MsgBox("you did Not Specify anyimage ")
e.Cancel = True
End If
End Sub
End Class
#7

السلام عليكم ورحمة الله وبركاته

طيب علشان نوفر الوقت والجهد

ممكن ترفق مشروعك وان شاء الله نقوم بالتعديل عليه وأخبرك أين كان الخطأ

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#8

المشروع حجمه 12 MB

و أنا عم أتصل من خط Dialup

ياريت تشووف الكود اللي كاتبه سابقا

مواضيع مشابهة