首页 新闻 会员 周边

关于上传的一个问题

0
[已关闭问题]

有个功能 需要上传文件 如图

 

我需要上传很多附件 但是吧 因为是复制的行 所以用不了 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 }

 

 

提示错误 是

 

原因是服务器上找不到本机的这个路径 当然报错了

 

我想知道怎么能让服务器知道是本机的文件的路径呢

scai的主页 scai | 初学一级 | 园豆:30
提问于:2010-04-21 13:29
< >
分享
其他回答(1)
0

你这样当然不行啊.

你这种方式就是错误的.

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目录是不是有文件了.

 

 

三阶 | 园豆:1436 (小虾三级) | 2010-04-21 14:00
有个问题 添加时候是基本实现了 但是在修改的时候 我是从后台向前台输出的字符串 拼的html 所以 files.Count =0了
支持(0) 反对(0) scai | 园豆:30 (初学一级) | 2010-04-22 12:26
Page.Request.Files.Count这里呢? 只要你上传了。那么Page或者Request对象里是肯定有的。Debug模式下,添加监视找一下。
支持(0) 反对(0) 三阶 | 园豆:1436 (小虾三级) | 2010-04-22 22:32
0

汗,楼上是大牛啊

Joe_true | 园豆:98 (初学一级) | 2010-04-22 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册