博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

多文件上传实现

Posted on 2008-04-27 19:20  froglog  阅读(220)  评论(0编辑  收藏  举报
利用Request.Files对象
代码:
public static bool SaveResourceFile(System.Web.UI.Page page, System.Web.HttpFileCollection hfc,string resourcePath)
{
  
for (int i = 0; (i < hfc.Count); i++)
  
{
     HttpPostedFile file 
= hfc.Get(i);
     
if (file.ContentLength > 0)
     
{
        
try
                    
{
                        
if (!Directory.Exists(page.Server.MapPath(resourcePath)))
                        
{
                            DirectoryInfo di 
= Directory.CreateDirectory(page.Server.MapPath(resourcePath));
                        }

                        
if (file.FileName.LastIndexOf("\\"!= -1)
                        
{
                            fileName 
= file.FileName.Substring(file.FileName.LastIndexOf("\\")+1);
                        }


                        
//将输入流转换成Byte[]
                        byte[] buffer = new byte[file.ContentLength];
                        file.InputStream.Read(buffer, 
0, buffer.Length);

                        
//存上传的文件
                        WriteFile(page.Server.MapPath(resourcePath + fileName), buffer);
                    }

                    
catch (Exception err)
                    
{
                    }

     }

   }


}

WriteFile方法的代码:
        public static void WriteFile(string fileName,byte[] buf)
        
{
            FileStream f 
= File.OpenWrite(fileName);
            f.Write(buf,
0,buf.Length);
            f.Close();
        }

实现客户端多文本上传服务器容易产生错误的地方是客户端文件路径和服务器路径混淆不清,其他其实和简单