客户端上传易忽视问题!
昨天做个了,客户端上传东西到服务器上,由于在本机调试,没有发现一些问题.如下:
1, 关于web页面上面判断客户端文件是否存在,如果用system.io.File.Exists()来判断,其实判断的是服务器上是否存在此文件,如果客户端和服务器在同一台机器上时候很容易误以为,判断是正确的,但是当客户机和服务器不是同一机器时,才会
发现其错误。
解决方案:
判断客户机上某个文件存在,是用客户端控件HtmlInputFile(命名为file1,runat=server )来取得某文件路径if(HtmlInputFile.PostedFile == null)来,判断其文件是否存在。
2,同理,解析一段客户端文件时候,首先需要的是让其上传存储在服务器上后
再对其进行解析。 如:
现在通过HtmlInputFile.value可取得所要处理文件的的客户端路径。
但是通过StreamReader sr = new StreamReader(HtmlInputFile.Value);
string s = sr.ReadToEnd();
是读不到的,当然,原因如上面所讲,这个时候读的是以HtmlInputFile.Value为路径的服务器上的地址,要想得到客户端文件可以通过HtmlInputFile.PostedFile.InputStream来获得一个stream,然后
StreamReader sr = new StreamReader(HtmlInputFile.PostedFile.InputStream);
string s = sr.ReadToEnd();
这个s就是读到的客户端文件内容的字符串。
1, 关于web页面上面判断客户端文件是否存在,如果用system.io.File.Exists()来判断,其实判断的是服务器上是否存在此文件,如果客户端和服务器在同一台机器上时候很容易误以为,判断是正确的,但是当客户机和服务器不是同一机器时,才会
发现其错误。
解决方案:
判断客户机上某个文件存在,是用客户端控件HtmlInputFile(命名为file1,runat=server )来取得某文件路径if(HtmlInputFile.PostedFile == null)来,判断其文件是否存在。
2,同理,解析一段客户端文件时候,首先需要的是让其上传存储在服务器上后
再对其进行解析。 如:
现在通过HtmlInputFile.value可取得所要处理文件的的客户端路径。
但是通过StreamReader sr = new StreamReader(HtmlInputFile.Value);
string s = sr.ReadToEnd();
是读不到的,当然,原因如上面所讲,这个时候读的是以HtmlInputFile.Value为路径的服务器上的地址,要想得到客户端文件可以通过HtmlInputFile.PostedFile.InputStream来获得一个stream,然后
StreamReader sr = new StreamReader(HtmlInputFile.PostedFile.InputStream);
string s = sr.ReadToEnd();
这个s就是读到的客户端文件内容的字符串。
浙公网安备 33010602011771号