棉兰号幽灵船事件:请问,如何用ASP+C#实现上传附件的功能

来源:百度文库 编辑:高校问答 时间:2024/04/30 00:16:56
需要做一个学生实习管理系统,学生要能把简历之类的上传到服务器上,请问应该如何实现
如果嫌麻烦,能不能告诉我看那些书,最好能有个下载或者实习的地址
不甚感谢

你可以去www.csdn.net查阅相关资料
以下是我工作中做的2个方法,可以实现不知道你能不能看懂

private void upfile_ServerClick(object sender, System.EventArgs e)
{
if(File1.PostedFile.FileName.Trim()!="")
{ //文件扩展名
string filename="";
//保存路径
string savepath="";
//文件的全名
string filefull=File1.PostedFile.FileName;

int dotPos=0;
//取得文件名(包括路径)里最后一个"."的索引
dotPos=filefull.LastIndexOf(".");
//取得文件扩展名
filename=filefull.Substring(dotPos);
//文件名加密
//filename=Session.SessionID.ToString().Substring(0,5)+Convert.ToChar((new Random()).Next(31)+65)+"_"+(new Random()).Next(100)+filename;
//这里自动根据日期和文件大小不同为文件命名,确保文件名不重复。
//DateTime now = DateTime.Now;
//string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString();
string newname=Session.SessionID.ToString().Substring(0,5)+Convert.ToChar((new Random()).Next(31)+65)+"_"+(new Random()).Next(100)+File1.PostedFile.ContentLength.ToString();
//上传到服务器上返回与服务器上虚拟路径相对应的物理路径

savepath=Server.MapPath("\\UpFiles\\"+newname);
//保存到此文件夹
File1.PostedFile.SaveAs(savepath);

fname.Text=System.IO.Path.GetFileName(filefull);
truename.Text=newname;
fenc.Text=File1.PostedFile.ContentType;
//"文件名:"+文件类型:""+"文件大小:"+"(字节)"+"文件存放路径:"+"文件扩展名:"+
fsize.Text=File1.PostedFile.ContentLength.ToString();
fpath.Text="\\UpFiles\\"+newname+filename;
fExtension.Text=System.IO.Path.GetFileName(filename);
int doc_id=Convert.ToInt32(Request.QueryString["doc_id"]);
if(doc_id==0)
{
BTTech.WebModules.Knowledgemanager.Folder addfileatt=new BTTech.WebModules.Knowledgemanager.Folder
(
fname.Text,truename.Text,Convert.ToInt32(fsize.Text),fenc.Text,fpath.Text,DateTime.Now,fExtension.Text
);
addfileatt.SavafileAtt1();
DataTable dt =BTTech.WebModules.Knowledgemanager.Folder.GetFilecontinfo();
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
}
else
{
BTTech.WebModules.Knowledgemanager.Folder addfileatt=new BTTech.WebModules.Knowledgemanager.Folder
(
doc_id,fname.Text,truename.Text,Convert.ToInt32(fsize.Text),fenc.Text,fpath.Text,DateTime.Now,fExtension.Text
);
addfileatt.SavafileAtt();
DataTable dt =BTTech.WebModules.Knowledgemanager.Folder.GetFilecontinfo1(doc_id);
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
}

}
}

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

if(e.CommandName=="DownLoad")
{ string yname="";
string name="";
string extents="";
//shiyan
try
{
int doc_id=Convert.ToInt32(Request.QueryString["doc_id"],10);

SqlDataReader dr;
string con=System.Configuration.ConfigurationSettings.AppSettings["connectionString"];
SqlConnection conn=new SqlConnection(con);
SqlCommand command = new SqlCommand("Select Fname,TrueName,DocType from Km_FileCont where DocID=@doc_id",conn);
command.Parameters.Add("@doc_id",doc_id);
conn.Open();
dr=command.ExecuteReader();
dr.Read();
string fname=dr["Fname"].ToString();
string truename=dr["TrueName"].ToString();
string doctype=dr["DocType"].ToString();
//int hif=Convert.ToInt32(hifolderid);
dr.Close();
conn.Close();
//folder_id=hif;
// Response.Redirect("shareshow.aspx?folder_id="+folder_id);
yname=fname;
name=truename;
extents=doctype;
}
catch
{}

string path=Server.MapPath(@".").Substring(0,Server.MapPath(@".").LastIndexOf("\\")) + "\\upfiles\\"+name;
System.IO.FileInfo theFile = new System.IO.FileInfo( path );

Response.Clear();
Response.AddHeader("Content-Disposition","attachment; filename=" +yname );
Response.AddHeader("Content-Length",theFile.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(theFile.FullName);
Response.End();
}
}