تصفح ملف من جهاز الكمبيوتر الخاص بي باستخدام تطبيق الويب في ASP.NET
-
27-09-2019 - |
سؤال
لدي تطبيق ويب قمت بتحميله باستخدام 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 هو مسار كامل. يمكنك الحصول على اسم الملف من الاسم الكامل. الجمع بين مسار الخادم واسم الملف قبل حفظ الملف