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

رفع الصور على مجلد في السيرفير

بدأه selwi2006 في 17 يونيو 2010 · 2 رد · 722 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة مشرفي وأعضاء منتدى الفريق العربي للبرمجة المحترمون

الكود التالي يعمل لدي بشكل سليم على localhost

لكن في السيرفير يظهر لي مشكلة

'object reference not set to an instance of an object'

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

String strFileName1 = " ";

strFileName1 = Request.PhysicalApplicationPath + @"uploads\\";

if (System.IO.Directory.Exists(strFileName1))

{

if (FileUpload1.PostedFile.FileName != "")

{

if (!File.Exists(strFileName1 + Path.GetFileName(FileUpload1.PostedFile.FileName)))

{

strFileName1 = @"uploads/" + Path.GetFileName(FileUpload1.PostedFile.FileName);

lblresult.Text = "";

}

else

{

lblresult.Text = "هناك صورة بنفس الاسم";

}

}//لم يتم تحميل صورة

}

else

lblresult.Text = "خطأ من الخادم : مجلد رفع الصور غير موجود";

أرجو من الأخوة الذين قد مرت عليهم مثل هذه المشكلة مساعدتي ولكم جزيل الشكر

تم تعديل هذه المشاركة بواسطة selwi2006 في 17 يونيو 2010 في 11:37

#2

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

أخى الحبيب انا لم أر أى كود يقوم بنسخ الملف الى السيرفر

يمكنك استخدام هذا السطر

                        FileUpload1.SaveAs(Server.MapPath(@"~\uploads\") + FileUpload1.FileName);

طبعا Server.MapPath(@"~\uploads\") للحصول على الباث على السيرفر

FileUpload1.FileName للحصول على اسم الملف فقط بدون الباث وبدون local path

ولو قابلك مشاكل انا معاك ان شاء الله

أقلب الغريب كقلب أخيك ؟! أعيناه تشبه عينا أخيك ؟؟!! fb.pngtwitter.png

#3

شكرا جزيلا أخي الفاضل أبو الجود

انا كنت استخدم HtmlInputFile control

والكود الخاص برفع الملف كنت استخدم الاتي :

FileUpload1.PostedFile.SaveAs(strFileName1);

حيث strFileName1 عبارة عن المجلد+اسم الملف

والان بعد ان قمت بتغيير الكنترول الى FileUpload

وغيرت السطر الخاص برفع الملف الى

FileUpload1.SaveAs(Server.MapPath(@"~\uploads\") + FileUpload1.FileName);

فقد عمل معي بشكل سليم

والان بقى معي هذا الكود استخدمه لتعديل ملف باستخدام الكونترول HtmlInputFile داخل <EditItemTemplate> في DetailsView

ايضا يعمل على localhost بشكل سليم ولا يعمل على السيرفير حاولت استخدم الكنترول FileUpload ايضا لم يعمل

والمعذرة

String strFileName1 = ((TextBox)DetailsView1.FindControl("txtpic1")).Text;
        String actpic = "";

        if (((HtmlInputFile)DetailsView1.FindControl("FileUpload1")).PostedFile.FileName != "")
        {
            actpic = ((HtmlInputFile)DetailsView1.FindControl("FileUpload1")).PostedFile.FileName;
            actpic = Path.GetFileName(actpic);

            String s = Server.MapPath(strFileName1);
            if ((strFileName1 != "") && ((@"uploads/" + actpic) != strFileName1) && (File.Exists(s)))
                File.Delete(s);

            strFileName1 = Server.MapPath(@"~\uploads\") + actpic;

            ((HtmlInputFile)DetailsView1.FindControl("FileUpload1")).PostedFile.SaveAs(strFileName1);

            strFileName1 = @"uploads/" + actpic;            
        }

أشكرك مرة اخرى جزيل الشكر على تعاونك معي

تم تعديل هذه المشاركة بواسطة selwi2006 في 19 يونيو 2010 في 18:36

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