تصفح ملف من جهاز الكمبيوتر الخاص بي باستخدام تطبيق الويب في ASP.NET

StackOverflow https://stackoverflow.com/questions/3458208

سؤال

لدي تطبيق ويب قمت بتحميله باستخدام IIS. أريد أن يتمكن المستخدمون الذين يستخدمون التطبيق من تحديد ملف موجود على الكمبيوتر (المستخدم) وقراءة محتوياته.

الرمز هو:

TextReader trs = new StreamReader(faFile.Value);
            DataAccessLayer.clearFA();
            string line = trs.ReadLine();
            // Read all unneeded data 
            while (line != "** Start Data **")
            {
                line = trs.ReadLine();
            }
            line = trs.ReadLine();
            while (line != null)
            {
                string[] words = line.Split('*');
                // There is no message
                if (words[4] == "")
                {
                    DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[3].Replace("'", ""));
                }
                else
                {
                    DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[4].Replace("'", ""));
                }
                line = trs.ReadLine();
            }         
        }

عندما أقوم بتشغيله من جهاز الكمبيوتر الخاص بي ، فإنه يعمل. لكن عندما أحاول تشغيله من IIS ، فإنه يعطيني الخطأ التالي:

Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'. 

أفهم أن التطبيق غير قادر على قراءة الملف من جهاز الكمبيوتر المستخدم. أي فكرة كيف يمكنني جعلها تعمل؟

شكرًا!

جريج

هل كانت مفيدة؟

المحلول

يتم ذلك لأسباب أمنية - لا يمكن للمتصفح الوصول إلى نظام ملفات المستخدم.

لا توجد وسيلة للتغلب على هذا ، لأن جميع التقنيات الأخرى التي تعمل داخل المتصفح هي رمل ومحدودة (مرة أخرى ، لأسباب أمنية).

الأقرب الذي يمكنك الحصول عليه هو استخدام <input type="file"> هذا يتيح للمستخدم تحديد ملف للتحميل.

نصائح أخرى

مسار ملف التحميل في IE 8 هو مسار كامل. يمكنك الحصول على اسم الملف من الاسم الكامل. الجمع بين مسار الخادم واسم الملف قبل حفظ الملف

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top