使用asp.net中的web应用程序从我的电脑浏览文件

时间:2010-08-11 12:31:04

标签: asp.net file path streamreader textreader

我有一个使用IIS上传的Web应用程序。我希望使用该应用程序的用户能够选择位于其(用户)计算机上的文件并阅读其内容。

代码是:

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'. 

我理解应用程序无法从用户pc读取文件。任何想法我怎么能让它工作?

谢谢!

格雷格

2 个答案:

答案 0 :(得分:0)

这是出于安全原因 - 浏览器无权访问用户的文件系统。

没有办法解决这个问题,因为在浏览器中运行的所有其他技术都是沙箱和有限的(出于安全原因)。

最接近的是使用<input type="file">,用户可以选择要上传的文件。

答案 1 :(得分:0)

IE 8中的上传文件路径是完整路径。您可以从全名获取文件名。在保存文件

之前合并服务器路径和文件名