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

كود ال upload

بدأه thepast في 11 يوليو 2012 · 11 رد · 859 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا استخدم الكود التالي لوضع الملفات في السيرفر

 If (FileUpload1.HasFile) Then
            Try
                con = New OleDbConnection("Provider=MSDAORA.1;Password=sss;User ID=admin;Data Source=qq;Persist Security Info=True")
                con.Open()
                Dim str As String = FileUpload1.PostedFile.FileName
                str = System.IO.Path.GetFileName(str)
                FileUpload1.PostedFile.SaveAs(Server.MapPath("f:\t_attach_t\") & str)

                '  Dim cm2 As New OleDbCommand("INSERT INTO att (attach) VALUES ('" & str & "')", con)
                Dim cm2 As New OleDbCommand("INSERT INTO taeen (sno,EMP_NO,attach) VALUES ('" & sno.Text & "','" & emp_no.Text & "','t_attach\" & str & "')", con)

                ' cm2.Parameters.AddWithValue("@file1.text", str)
                cm2.ExecuteNonQuery()
                HyperLink1.NavigateUrl = str
                Label2.Text = "File Uploaded Successfully"
            Finally
                con.Close()
            End Try
            'Else
            ' Label4.Text = "ERROR IN SAVE"
            'Label2.Text = "!Error In Uploaded"
        End If

هذا الكود كما قلت استخدمه في وضع ملفات الموظفين في السيرفر

بس المشكله يضع الملفات في ملفات المشروع في c

ما اريده تعديل الكود بحيث يحفظ لي الملفات في مجلد اضعه في d او اي درايف

كيف اعمل ذلك

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

ياشباب ارجووووووووو مساعدتكم العاجلة في كيفية تغيير مسار حفظ الملف ليكون في درايف اخر او في سيرفر اخر

لان مساحة السيرفر اللذي فيه مشروعي حتصير فل

ارجوووووووووووووووكم وهل هذه الخطوة التي اريدها صحيحة ام لا

ارجووووووو المساعدة

#2

ارجوووووووووووووووووو المساعدة يا شباب ارجوووكم

هل من الصحيح انا اضع الاتاتش في درايف غير الموجود فيه ملفات المشروع مثلا في d او ممكن يكون في سيرفر اخر

هل هذا صحيح

واذا قدرت ان اضعها عندما اريد جلب هذا الملف هل استطيع اذا كان الملف موجود في مكان غير مجلد المشروع

وماهو الصحيح والافضل وبالنسبة للملفات ممكن بعد فترة يصبح القرص c ممتلء

ماهو الحل الافضل لهذه المشكلة

#3

السلام عليكم

لتغيير مسار التخزين استخدم (بدون server.map)

 FileUpload1.PostedFile.SaveAs("f:\t_attach_t\" & str)

اما طريقة تحميل الملف فعليك بنسخ الملف من مجلد التخزين الى مجلد داخل الويب سايت وعلى ذلك الاساس تعطي رابط التحميل .

#4

يعني اخي مافائدة تخزين الملفات في قرص اخر

هل تقصد لكي اجلب الملفات لابد من اخذ نسخة منها في مجلد المشروع

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

هل هذا ماتقصده ارجووو التوضيح

وهل هناك حل اخر في جلب البيانات لانه انا جربت اجلب الملف من قرص اخر مانفع معي لابد ان يكون الملف موجود في مجلد المشروع ليكي يفتح

شكرا

#5

يتم تكوين المسار عن طريق Server.MapPath لعمل مسار حقيقي من مسار إفتراضي يرتبط مع مكان الموقع الخاص بك على القرص الصلب

FileUpload1.PostedFile.SaveAs(Server.MapPath(~"t_attach_t\" & str))

اللهم ارزقنا فهم النبيين وحفظ المرسلين

Hock341@yahoo.com

الشركة التطبيقية لخدمات الحاسب الالي [حاسب]

http://www.hasib.com.sa

مدونتي

#6

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

انا المشكلة مش في الكود

ولكن الاشكاليه او التساؤل عندي انا عندي صفحة وهذه الصفحة فيها ابلود للملفات بمعنى الملف يتخزن في السيرفر في القرص سي وعندي هايبر لنك لجلب هذه الملفات

بس الاشكاليه بعد فترة سوف يصبح القرص ممتلئ كيف تتصرفون في مثل هذا الموضوع هل تضعون الملفات في سيرفر اخر مثلا داتا ستورج بس سوف تكون الاشكاليه في جلب الملف

لانه كذا شخص قال لي انه اذا تريد جلب ملف ما لابد ان يكون الملف موجو في مجلد المشروع

ارجووووووووكم اشيرو علي كيف اتصرف لانه انا افكر في المستقبل وليس الان لان بعد قترة ستزيد حجم الملفات

ارجوووووكم يا أهل الخبرة المساعدة بما أنكم خبرة في هذه المواضيع كيف تتصرفون

#7

ارجوووو مساعدتكم الضروريه

#8

السلام عليكم

حتى يستطيع المستخدم تحميل الملف فيجب ان يكون في مجلد تابع للموقع .

في حالة كانت الملفات كبيرة نسبيا فيمكنك عمل موقع جديد على مجلد هذه الملفات .

على سبيل المثال:

الموقع الاصلي موجود على المجلد

c:\wwwroot\test1

فيمكن عمل موقع جديد test2 على مجلد الملفات مثلا d:\test2

ويصبح رابط الملفات بدلا من http://localhost/test1 هو http://localhost/test2 .

هذا هو ما خطر ببالي الان.

واعتقد هناك حلول لتوسيع القرص او اضافة امتدادت له باقراص اخرى .

#9

ارجوووووووووكم يا اخوان اعطوني الحلول

انا افكر ان اشتري سيرفر داتا ستورج يكون اعتقد حجم الهاردات تصل الى 24 تيرا بمعنى هذا هو الحجم كافي وزيادة

بس الاشكالية انا عندي سيرفر قديم حجم الهارد فيه 1 تيرا السؤال هو هل اضع موقعي في السرفر الجديد اذا اريد ان اضعه هل لا بد ان انصب الفيجوال دوت نت على هذا السيرفر

لكي يعمل الموقع اما فقط انزل IIS وخلاص هل هذا حل مناسب هناك من قال انه خلي الموقع على السيرفر القديم في حالة الابلود ضعه في السيرفر الجديد

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

ارجوووووووووووووووووكم

#10

يمكن تخزين الملفات في اي Drive او Networking Storage و من ثم تنزيلها من موقعك.

و في هذه الحالة امامك اختيارات

1- عمل موقع (Web site) علي IIS و اضافة 2 Virtual Directory واحد للكود و اخر للملفات و يمكنك استخدم HyperLink و يكون للملف رابط ويب مباشر بنفس ال Domain Name الخاص بموقعك و طبعا يمكنك وضع ال Virtual Directories في اماكن مختلفة

2- عمل Web site مختلف لمجلد الملفات و استخدام رابط مباشر يشير الي الملف في هذا الموقع

3- تخزين الملف اينما شئت و بدلا من وجود رابط مباشر للملف استخدم LinkButton و ارجع الملف للمستخدم ك HttpResponse عن طريق Response.WriteFile

مثال:

    	// استخدم هذه الطريقة لتحميل الملفات من اي مسار
    	// فقط قوم باستدعاء الكود التالي من 
    	// LinkButton Click
    	private void DownloadFile(string filePath, bool forceDownload)
    	{
        	//استخدم Page.MapPath 
        	//اذا كان مسار الملف رابط ويب و غير ذلك فلا داعي 
        	//string path = MapPath(filePath);
        	string name = Path.GetFileName(filePath);
        	string ext = Path.GetExtension(filePath);
        	string type = "";
        	// يمكنك تحديد نوع الملف حسب الامتداد
        	// يفضل اضافة كل انواع الملفات المتوقعة في موقعك
        	if (ext != null)
        	{
            	switch (ext.ToLower())
            	{
                	case ".htm":
                	case ".html":
                    	type = "text/HTML";
                    	break;

                	case ".txt":
                    	type = "text/plain";
                    	break;

                	case ".doc":
                	case ".rtf":
                    	type = "Application/msword";
                    	break;
                	case ".pdf":
                    	type = "application/octet-stream";
                    	break;
            	}
        	}
        	if (forceDownload)
        	{
            	Response.AppendHeader("content-disposition",
                	"attachment; filename=" + name);
        	}
        	if (type != "")
            	Response.ContentType = type;
        	Response.Clear();
        	Response.WriteFile(filePath);
        	Response.Flush();
        	Response.End();
    	}
#11

شكرا يا اخي على ردك وفهمك لمشكلتي

انا لم افهم كثيرا من ردك ولكن ارجووو ان تسهل لي الحل

انا عندي ابولود وداونلود

انا استخدم الكود في الاعلى للابلود

واضعه في المسار اللذي اريد

  FileUpload1.PostedFile.SaveAs("f:\t_attach_t\") & str)

واذا حفظته في قاعدة البيانات يحفظ اسم الفولدر/ اسم الملف هنا لا اريد ان احفظ مكان الحفظ اريده عام

هنا لا اواجه مشكلة

ولكن المشكله عندي في الدانولود

انا استخدم كود

 For Each gvRow As GridViewRow In GridView1.Rows

            Dim chkItem As CheckBox = gvRow.FindControl("Ch")
            Dim hp As HyperLink = gvRow.FindControl("HyperLink")

            If chkItem.Checked Then
                gvRow.Cells(0).BackColor = Drawing.Color.Yellow

                hp.NavigateUrl = gvRow.Cells(6).Text
            Else
                gvRow.Cells(0).BackColor = Drawing.Color.WhiteSmoke

                hp.NavigateUrl = Nothing

            End If

        Next

هنا اقول للهايبر لنك خذ من العمود اللذي اسمه مثلا path سوف يكون مكتوب اسم الفولدر/ اسم الملف

بس اذا وضعت هذا المجلد في اي مكان خارج مجلد المشروع لايفتح

كيف استطيع التعديل في الكود بحيث يذهب الى المكان اللذي احدده له سواء كان في مكان غير السي او في سيرفر اخر

يذهب يبحث وراء المجلد اللذي مخزن في الداتا بيز ويأخذ اسم الملف المخزن ايضا في الداتا بيز

ارجووو التعديل في الكود (هنا انا وضعت الهايبر لنك في قريد فيو لا يوحد مكشله في هذا)

ارجووو المساعدة

تم تعديل هذه المشاركة بواسطة thepast في 14 يوليو 2012 في 19:09

#12

السلام عليكم

انا وضعت vartiual derctory وحطيبت في الباث ip\folder naem\\

بس المشكلة لما افتح الموقع واضغط على زر التحميل لملف من هذا المجلد يأتي

[code

500 - INTERNAL SERVER ERRO

THERE IS A PROBLEM WITH THE RECOURCE

]

ارجوووووووووووكم اريد الحل

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…