asp.net2.0 上传文件出错

2026年09月09日 19:05
有1个网友回答
网友(1):

我有全套的.net 代码,等下发上来,你不忙关闭
http://www.c1011.net/C1011/Htm/class/class_70.htm
『网站开发』C1011新人助手 千网助手 =C1011新人助手 千网助手 Logo图标索引导航网 各类精选网站 人生有限,光阴似箭,看C1011,看最强的才是您的选择.-

C1011新人助手 千网助手 http://www.c1011.net 友情提供
这么好的站点记着收藏起来哦;

using System;
using System.Data;
using System.Data.OleDb;
//using System.Data.OracleClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
bool fileok = false;
//获取基于应用程序根文件夹的绝对路径
string path = Server.MapPath("~/temp");
//如果确认了上传文件,则判断文件类型是否符合要求
if (FileUpload1.HasFile)
{
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
string[] allowedExtensions ={ ".gif", ".png", ".bmp", ".jpg", ".txt", ".doc" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileok = true;
}
}
if (fileok)
{
try
{
System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;
if (fileDataStream.Length < 1)
{
LabMessage1.Text = "请选择文件。";
return;
}
//得到文件大小
int fileLength = FileUpload1.PostedFile.ContentLength;
//创建数组
byte[] fileData1 = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData1, 0, fileLength);
//得到文件类型
string fileType = FileUpload1.PostedFile.ContentType;
//得到文件名称带路径-yzx 20071101
//得到文件名 -yzx 20071101 FileUpload1.PostedFile.FileName带路径
string fileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

//Encoding ascii = Encoding.ASCII;
//this.TextBox1.Text = this.TextBox1.Text + Server.UrlDecode(ascii.GetString(fileData,0,fileLength));
//this.TextBox1.Text = this.TextBox1.Text + ascii.GetString(fileData,0,fileLength);
this.TextBox1.Text = "-文件名-" + fileName + "-";
this.TextBox1.Text = this.TextBox1.Text + System.Text.Encoding.Default.GetString(fileData1, 0, fileLength);
Stream MyStream1 = FileUpload1.PostedFile.InputStream;

//数据联接---------------------------------------------------------
//OleDbConnection conn01 = new OleDbConnection();
//conn01.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=~/data/data.mdb";
//System.Data.DataTable table01 = new DataTable();
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("./data/data.mdb");
//"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "/data/data.mdb";
OleDbConnection conn = new OleDbConnection(strCnn);
OleDbCommand cmd = new OleDbCommand("INSERT INTO File0 (name, Data01, FileSize, type)" +
"VALUES (@pname,@pData01,@pFileSize,@ptype)", conn);
System.Data.OleDb.OleDbParameter p_Name = new OleDbParameter("@pname", System.Data.OleDb.OleDbType.VarChar, 50);
p_Name.Value = fileName;
cmd.Parameters.Add(p_Name);
System.Data.OleDb.OleDbParameter p_Data01 = new OleDbParameter("@pData01", System.Data.OleDb.OleDbType.Binary);
p_Data01.Value = fileData1;
cmd.Parameters.Add(p_Data01);
System.Data.OleDb.OleDbParameter p_FileSize = new OleDbParameter("@pFileSize", System.Data.OleDb.OleDbType.Integer);
p_FileSize.Value = fileLength;
cmd.Parameters.Add(p_FileSize);
System.Data.OleDb.OleDbParameter p_Type = new OleDbParameter("@ptype", System.Data.OleDb.OleDbType.VarChar, 50);
p_Type.Value = fileType;
cmd.Parameters.Add(p_Type);
//打开连接,执行查询
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();

LabMessage1.Text = "文件上传成功.";
LabMessage2.Text = "原文件路径:" +
FileUpload1.PostedFile.FileName + "
" + "文件大小:" +
FileUpload1.PostedFile.ContentLength + "字节
" + "文件类型:" +
FileUpload1.PostedFile.ContentType + "
";

//----------测试 yzx 10 30---------------------------end

//----------测试 yzx 11 2 读数据----------------------start
//------------不经过存储过程数据正常--------------------------------
//Response.Expires = 0;
//Response.Buffer = true;
//Response.Clear();
//Response.ContentType = fileType;//myRow["type"].ToString();//获取数据文件格式
//Response.AddHeader("Content-disposition", "attachment;filename=aaa.doc");//输出文件aaa.doc 说明
//Response.AddHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName));
//Response.BinaryWrite((byte[])fileData1);//已经可以输出了,只是格式不对
//Response.Flush();//向客户端发送所有缓存的输出;
//Response.End();
//----------测试 yzx 11 2 读数据----------------------end

}
catch (Exception ex)
{
LabMessage1.Text = ex.Message + "---Error---";
}
}
else
{
LabMessage1.Text = "只能够上传指定的文件类型...";
}
}

}

private DataTable DataTable()
{
throw new Exception("The method or operation is not implemented.");
}
protected void Button2_Click(object sender, EventArgs e)
{
OleDbConnection MyCon_orcl = new OleDbConnection();
MyCon_orcl.ConnectionString = "";

}
protected void Button3_Click(object sender, EventArgs e)
{
OleDbConnection MyCon01 = new OleDbConnection();
MyCon01.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "/data/data.mdb";
//MyCon01.Database = "File0";
OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
OleDbCommand MyCmd1 = new OleDbCommand("select * from File0", MyCon01);
MyAdapter.SelectCommand = MyCmd1;
DataTable MyDt = new DataTable();
MyAdapter.Fill(MyDt);
DataRow myRow = MyDt.Rows[MyDt.Rows.Count-1];
LabMessage3.Text = "--数据--" + myRow["name"].ToString() + "---" + myRow[0].ToString();
//---------------------------------------------------
//Response.Expires = 0;
//Response.Buffer = true;
//Response.Clear();
//Response.ContentType = myRow["type"].ToString();//获取数据文件格式
//Response.AddHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(myRow["name"].ToString()));
//Response.BinaryWrite((byte[])myRow["Data01"]);//已经可以输出了,只是格式不对
//Response.Flush();//向客户端发送所有缓存的输出;
//Response.End();
//------------不经过存储过程数据正常--------------------------------
Response.Expires = 0;
Response.Buffer = true;
Response.Clear();
Response.ContentType = myRow["type"].ToString();//获取数据文件格式
Response.AddHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(myRow["name"].ToString()));
//Response.BinaryWrite((byte[])myRow[1]);//已经可以输出了,只是格式不对
Response.OutputStream.Write((byte[])myRow[1],0,(int)myRow["FileSize"]);
Response.Flush();//向客户端发送所有缓存的输出;
Response.End();
//----------测试 yzx 11 2 读数据----------------------end

//--------------------参考资料----------------------------------
//---------------------------------------------------
//Context.Response.End();
//Byte[] Buffer = (Byte[])myRow[1];
//Response.BinaryWrite(Buffer);
//Response.BinaryWrite((byte[])myRow[1]);//已经可以输出了,只是格式不对
//MemoryStream buf = new MemoryStream((byte[])myRow[1]);
//Response.BinaryWrite((byte[])myRow[1]);
//Response.BinaryWrite((byte[])myRow[1]);
//Response.BinaryWrite(myRow[1]);
//Response.BinaryWrite(myRow[1]);
//Response.Expires = 0
//Response.Buffer = TRUE
//Response.Clear
//Response.ContentType =trim(rs("ContentType"))
//Response.addheader "Content-disposition", "attachment;filename=" & trim(rs("name"))
//Response.flush
//response.binarywrite rs("data")
//---------------------------------------------------
//-----------------------------------------------------

}
}