上传大容量的文件,音频

fileupload作为一种上传控件,可以上传容量在5M以下的各种文件格式(doc,txt,rm,mp3)但是当文件格式超过一定的容量的时候就不能用这种方式了
如果上传文本形式的可以用streamreader 和streamwriter
 1protected void Button3_Click(object sender, EventArgs e)
 2    {
 3        //客户端的文件的全路径名称
 4        string clientPath = this.FileUpload2.PostedFile.FileName.ToString();
 5        //客户端的文件的名称
 6        string fileName = this.FileUpload2.FileName.ToString();
 7        try
 8        {
 9            FileInfo fi = new FileInfo(clientPath);
10            //以文本格式来读取文件内容
11            StreamReader sr = fi.OpenText();
12            string content = sr.ReadToEnd();
13            string serverPath = Server.MapPath(@"..\upload\")+fileName;
14            if (File.Exists(serverPath))
15            {
16                Response.Write("<script language='javascript'>alert('文件已经存在,请重命名后在上传');</script>");
17                return;
18            }

19            else
20            {
21                //以文本格式来写入文件内容
22                StreamWriter sw = new StreamWriter(serverPath,false,System.Text.Encoding.Unicode);
23                sw.Write(content);
24                sw.Flush();
25                sw.Close();
26                if (File.Exists(serverPath))
27                {
28                    Response.Write("<script language='javascript'>alert('文件上传成功');location.href('../filetest/Default.aspx');</script>");
29                }

30            }

31        }

32        catch (Exception ex)
33        {
34            Debug.Fail(ex.Message);
35        }

36    }

     如果是音频文件的上传可以用二进制的形式来读取和写入,用到filestream
 1  protected void fileUploadbtn_Click(object sender, EventArgs e)
 2    {   //客户端的全路径
 3        string fileName = this.FileUpload1.PostedFile.FileName.ToString();
 4        //客户端的文件名称
 5        string serverName = this.FileUpload1.FileName.ToString();
 6        //FileStream以二进制方式读取和保存数据
 7        FileStream fs = new FileStream(fileName,FileMode.Open,FileAccess.Read,FileShare.None);
 8        int fileLen = Convert.ToInt32(fs.Length);
 9        Byte[] fileData=new Byte[fileLen];
10        try
11        {
12            fs.Read(fileData,0,fileLen);
13            fs.Close();
14            string path = Server.MapPath(@"..\upload\")+serverName;
15            if (File.Exists(path))
16            {
17                Response.Write("<script language='javascript'>alert('文件已经存在,请重命名后在上传');</script>");
18                return;
19            }

20            FileStream fs2 = new FileStream(path,FileMode.Create,FileAccess.Write,FileShare.None);
21            fs2.Write(fileData,0,fileLen);
22            fs2.Flush();
23            fs2.Close();
24            if (File.Exists(path))
25            {
26                Response.Write("<script language='javascript'>alert('文件上传成功');location.href('../filetest/Default.aspx');</script>");
27            }

28        }

29        catch (Exception ex)
30        {
31            Debug.Fail(ex.Message);
32        }

33    }

       这种方式可以保存大到几百M的各种文件!
posted on 2008-07-04 16:47  小顾问  阅读(763)  评论(0)    收藏  举报