HttpPostedFile的使用方法和例子
1、新建一个test.aspx页面,前台代码如下:
<form runat="server" method="post" enctype="multipart/form-data">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnAdd" runat="server" Text="上传" />
</form>
2、效果图如下:
3、后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//(0) 判断文件是否存在
if (Request.Files.Count < 1)
{
return;
}
SaveToRead();
}
4、
// 1,先保存,再读取文件
public void SaveToRead()
{
// (1)获取上传的文件,保存到 应用程序基目录
HttpPostedFile file = Request.Files[0];
string sFileName = System.AppDomain.CurrentDomain.BaseDirectory + "上传文件.txt";
file.SaveAs(sFileName);
// (2)从服务器上读取文件
StreamReader reader = new StreamReader(sFileName, Encoding.GetEncoding("GB2312"));
string temp = reader.ReadLine();
Response.Write(temp);
// (3)关闭文件流
reader.Close();
// (4)其他函数需要读取时,从新加载文件
reader = new StreamReader(sFileName, Encoding.GetEncoding("GB2312"));
temp = reader.ReadLine();
Response.Write(temp);
}
5、运行效果图如下:
1、前台代码不变,后台添加如下代码:
protected void Page_Load(object sender, EventArgs e)
{
//(0) 判断文件是否存在
if (Request.Files.Count < 1)
{
return;
}
SaveToRead();
ReadFile();
}
2、
//2,直接读取上传的文件
public void ReadFile()
{
//(1)将上传的文件同时赋值给file1和file2
HttpPostedFile file1 = Request.Files[0];
HttpPostedFile file2 = Request.Files[0];
//(2)判断文件为空的方法
if (file1 == null || file1.ContentLength == 0 || string.IsNullOrEmpty(file1.FileName))
{
//文件为空,写入日志
Response.Write("文件为空");
return;
}
//(3)获取文件流的方法
Stream stream = file1.InputStream;
StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("GB2312"));
//(4) 读取文件内容的方法
string temp = reader.ReadLine();
//(5) 关闭文件流
reader.Close();
//(6) 查看file1和file2的长度均为0
Response.Write("file1的长度:" + file1.ContentLength + "; file2的长度:" + file2.ContentLength);
}
3、运行效果如下: