最近在弄ajax无刷新上传的问题.
在网上也找了一些资料,大多是采用把选好的文件的 整个文件的目录和文件名组成的字符串,
传给服务端程序,然后以读取字节流的形式上传.
最终会形成如下逻辑的代码,是从网上取的,我改动了,模拟一下.
string uriString = "http://localhost:8022/UpLoad/1.jpg";
string fileName = @"C:\2.jpg";
WebClient myWebClient = new WebClient();
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] postArray = br.ReadBytes(Convert.ToInt32(fs.Length));
Stream postStream = myWebClient.OpenWrite(uriString, "PUT");
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
}
postStream.Close();
fs.Close();
不知大家注意没有,string fileName = @"C:\2.jpg";
这个就是客户端机器上的文件,如果文件是在系统盘,就无法上传
提示:对路径“**”的访问被拒绝。
如果是在其它盘,就可以上传,
难道是因为我的系统盘是NTFS格式的吗,其它盘是FAT32格式的.
还有一点,小弟不明白,
如果这样都可以上传文件,那我们浏览网页那不太危险了,机器上的文件随便就可以被危险网站弄走了.
NTFS格式盘符有权限问题, 请给响应用户该目录读取权限