上传大容量的文件,音频
fileupload作为一种上传控件,可以上传容量在5M以下的各种文件格式(doc,txt,rm,mp3)但是当文件格式超过一定的容量的时候就不能用这种方式了
如果上传文本形式的可以用streamreader 和streamwriter
如果是音频文件的上传可以用二进制的形式来读取和写入,用到filestream
这种方式可以保存大到几百M的各种文件!
如果上传文本形式的可以用streamreader 和streamwriter
1
protected 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
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

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
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

这种方式可以保存大到几百M的各种文件!