请问asp.net如何实现文件上传和下载功能,最好提供详细的源码,谢谢了

 我来答
听寒说
2012-08-15 · TA获得超过133个赞
知道小有建树答主
回答量:144
采纳率:100%
帮助的人:33.5万
展开全部
aspx 代码

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:FileUploadID="FileUpLoad1"runat="server"/>
<br/>
<asp:ButtonID="btnFileUpload"runat="server"
OnClick="btnFileUpload_Click"Text="文件上传"
OnClientClick="return checkType()"/>
<asp:LabelID="lblMessage"runat="server"></asp:Label>
</div>
</form>
</body>
</html>

js代码
function checkType(){
//得到上传文件的值
var fileName=document.getElementById("FileUpLoad1").value;
//返回String对象中子字符串最后出现的位置.
var seat=fileName.lastIndexOf(".");
//返回位于String对象中指定位置的子字符串并转换为小写.
var extension=fileName.substring(seat).toLowerCase();
//判断允许上传的文件格式
//if(extension!=".jpg"&&extension!=".jpeg"&&extension!=".gif"&&extension!=".png"&&extension!=".bmp"){
//alert("不支持"+extension+"文件的上传!");
//return false;
//}else{
//return true;
//}
var allowed=[".jpg",".gif",".png",".bmp",".jpeg"];
for(var i=0;i<allowed.length;i++){
if(!(allowed[i]!=extension)){
returntrue;
}
}
alert("不支持"+extension+"格式");
returnfalse;
}

cs代码
//文件上传按钮click事件
protectedvoid btnFileUpload_Click(object sender, EventArgs e)
{
if (FileUpLoad1.HasFile)
{
//判断文件是否小于10Mb
if (FileUpLoad1.PostedFile.ContentLength < 10485760)
{
try
{
//上传文件并指定上传目录的路径
FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")
+ FileUpLoad1.FileName);
/*注意->这里为什么不是:FileUpLoad1.PostedFile.FileName
* 而是:FileUpLoad1.FileName?
* 前者是获得客户端完整限定(客户端完整路径)名称
* 后者FileUpLoad1.FileName只获得文件名.
*/
//当然上传语句也可以这样写(貌似废话):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
lblMessage.Text = "上传成功!";
}
catch (Exception ex)
{
lblMessage.Text = "出现异常,无法上传!";
//lblMessage.Text += ex.Message;
}
}
else
{
lblMessage.Text = "上传文件不能大于10MB!";
}
}
else
{
lblMessage.Text = "尚未选择文件!";
}
}
来自吕祖堂举目眺望的徐晃
2012-08-15 · TA获得超过136个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:157万
展开全部
上传:HttpPostedFile postFile = Upload.PostedFile;postFile.SaveAs(MapPath("路径"));
下载:
public static void DownLoadFile(string path)
{
path = HttpContext.Current.Server.MapPath(path);
System.IO.FileInfo file = new System.IO.FileInfo(path);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name));
HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.WriteFile(file.FullName);
HttpContext.Current.Response.End();
}
追问
可以再详细点吗?最好有个具体的例子
追答
这个还不详细啊   
HttpPostedFile postFile = Upload.PostedFile;//Upload上传的控件
postFile.SaveAs(MapPath("路径"));//文件保存路径

下载调用方法就行了啊 传过路径过来就行
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq315133133
2012-08-15 · 超过12用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:37.9万
展开全部
推荐是正解 其实用ASP.NET的服务器控件 FileUpload 很容易就可以实现一个上传附件的功能,从百度文库就可以下载到使用方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式