我有一个使用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读取文件。任何想法我怎么能让它工作?
谢谢!
格雷格
答案 0 :(得分:0)
这是出于安全原因 - 浏览器无权访问用户的文件系统。
没有办法解决这个问题,因为在浏览器中运行的所有其他技术都是沙箱和有限的(出于安全原因)。
最接近的是使用<input type="file">
,用户可以选择要上传的文件。
答案 1 :(得分:0)
IE 8中的上传文件路径是完整路径。您可以从全名获取文件名。在保存文件
之前合并服务器路径和文件名