我在IIS.7中托管了我的asp.net网络应用程序,我尝试了一些示例代码,使用httpwebrequest帖子将图像从客户端计算机上传到服务器。但它没有帮助。
我在浏览器访问本地计算机路径时遇到问题。 我知道出于安全原因浏览器不允许它读取本地机器路径。 那么如何在不使用 fileuplaod控件和输入文件类型的情况下访问, 有没有办法以编程方式获取客户端机器路径?
我的要求是:用户不应该允许选择文件路径。 所以在后面的代码中我想读取特定的目录图像文件并在FileStream上设置值。
Ex:like
string uploadfile = @"D:\Test.jpg";
FileStream fileStream = new FileStream(uploadfile,FileMode.Open, FileAccess.Read);
当我提供像@“D:\ Test.jpg这样的路径时,它会查看服务器机器路径。
我试过同样的例子: C# HttpWebRequest form upload
感谢您提前
答案 0 :(得分:0)
在可用的Web应用程序中无法实现您的目标。
首先是第一件事。您的ASP.NET代码正在服务器中运行。服务器无法访问客户端硬盘驱动器。他们甚至不知道客户是否有硬盘。想象一下,我使用iPad访问您的网站。 iPad不要'有一个C:\文件夹。
您只能这样做,如果您的公司网络中有客户端计算机,并且服务器具有一些角色和/或权限,那么他就可以访问网络中使用您网站的每台客户端计算机。但即便如此,当客户端到达服务器时,他也不知道网络共享(但您可以在XML文件或数据库表中获得该信息)。但这对你的问题/要求来说是非常糟糕的做法和不太优雅的解决方案。
最佳和通常的解决方案是FileUpload控件,客户端选择要将哪些文件/文件上传到服务器。
另一方面,如果你能做你想做的事,那么就没有任何东西可以阻止我访问你的本地文件,并且可以访问敏感文件并将它们上传到服务器。我可以得到你最后的假期照片,敏感的邮件,密码,你的名字。出于这个原因,你不能这样做。
答案 1 :(得分:0)
如果无法在没有文件上传控制的情况下将文件从客户端上传到服务器,那么可以请说明以下链接的内容是什么?
RGDS, 瑟尔