有个功能 需要上传文件 如图
我需要上传很多附件 但是吧 因为是复制的行 所以用不了 FileUpload.PostedFile.SaveAs 的功能了 我就想用 FileStream 写文件 。在本机测试是好使的,但是放到
服务器上时 就不对了 具体代码 如下
1 private byte[] Readfile(string filpath)
2 {
3 FileStream fs = new FileStream(filpath, FileMode.Open, FileAccess.Read);
4 BinaryReader rd = new BinaryReader(fs);
5 byte[] buffer = new byte[fs.Length];
6 rd.Read(buffer, 0, (int)fs.Length);
7
8 rd.Close();
9 fs.Close();
10 return buffer;
11
12 }
13
14 private string writefile(string filpath)
15 {
16 string name = "";
17 if (!string.IsNullOrEmpty(filpath))
18 {
19 string typ2 = filpath.Substring(filpath.LastIndexOf(".") + 1);
20
21 name = Common.Rand.Number(20) + "." + typ2;
22
23 FileStream fs = new FileStream(Server.MapPath("~/Files/") + name, FileMode.OpenOrCreate, FileAccess.Write);
24 BinaryWriter rw = new BinaryWriter(fs);
25 byte[] strbyte = Readfile(filpath);
26 rw.Write(strbyte);
27 rw.Close();
28 fs.Close();
29 }
30 return name;
31
32
33 }
提示错误 是
原因是服务器上找不到本机的这个路径 当然报错了
我想知道怎么能让服务器知道是本机的文件的路径呢
你这样当然不行啊.
你这种方式就是错误的.
web服务器怎么可以通过这样的方式来获取客户端资源呢?
多文件上传同样是可以使用FileUpload空间的saveas功能的.HttpContext.Current.Request.Files这个里面是一个集合.多文件上传时,遍历这个集合就可以了.
//1.获取上传的文件列表
HttpFileCollection files = HttpContext.Current.Request.Files;
//2.遍历每个文件,进行保存
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile postedFile = files[i];
postedFile.SaveAs(Server.MapPath("~/Files/") + postedFile.FileName);
}
//3.完工,检查Files目录是不是有文件了.
汗,楼上是大牛啊