单个附件做出来了,请教一下多附件的做法。<body>
<form id="form1" runat="server">
<div id="div1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" Height="26px" />
<asp:Button ID="Button1" runat="server" Text="上传" onclick="btnUpload_Click"
Height="28px" Width="62px" />
</div>
<div id="div2" visible="false" runat="server">
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/upload/Attachment.JPG" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
using System;
using System.Configuration;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;public partial class _FileUpload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
} /// <summary>
/// 附件上传模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpload_Click(object sender, EventArgs e)
{
Boolean fileOk = false;
string filename = FileUpload1.FileName;
string path = Server.MapPath("~/upload/");
string path2 = path + filename; //判断是否已经选取文件
if (FileUpload1.HasFile)
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(filename).ToLower();
//限定只能上传jpg和gif图片
string[] allowExtension = { ".jpg", ".gif",".xls",".word",".ppt" };
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
{
fileOk = true;
break;
}
}
//对上传文件的大小进行检测,限定文件最大不超过10M
if (FileUpload1.PostedFile.ContentLength > 10240000)
{
fileOk = false;
}
//最后的结果
if (fileOk)
{
try
{
FileUpload1.PostedFile.SaveAs(path2);
Response.Write("<script>alert('上传成功')</script>");
div2.Visible = true;
LinkButton1.Text = filename;
int filesize = FileUpload1.PostedFile.ContentLength;
int kbfilesize = filesize / 1024;
Label1.Text = kbfilesize.ToString() + "KB";
}
catch
{
Response.Write("<script>alert('上传失败')</script>");
}
}
else
{
Response.Write("<script>alert('文件类型或者文件大小超出10M')</script>");
} }
} /// <summary>
/// 附件下载模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void LinkButton1_Click(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
FileInfo fileInfo = new FileInfo(Server.MapPath("~/upload/") + LinkButton1.Text);//获取文件夹地址+文件夹名称
response.Clear();
response.ClearHeaders();
response.Buffer = false;
response.ContentType = "application/octet-stream";//定义文件类型为".*"(所有文件类型)
response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(LinkButton1.Text, System.Text.Encoding.UTF8));
response.AppendHeader("Content-Length", fileInfo.Length.ToString());
response.WriteFile(fileInfo.FullName);//导出文件内容
response.Flush();
response.End();
}
}
<form id="form1" runat="server">
<div id="div1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" Height="26px" />
<asp:Button ID="Button1" runat="server" Text="上传" onclick="btnUpload_Click"
Height="28px" Width="62px" />
</div>
<div id="div2" visible="false" runat="server">
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/upload/Attachment.JPG" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
using System;
using System.Configuration;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;public partial class _FileUpload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
} /// <summary>
/// 附件上传模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpload_Click(object sender, EventArgs e)
{
Boolean fileOk = false;
string filename = FileUpload1.FileName;
string path = Server.MapPath("~/upload/");
string path2 = path + filename; //判断是否已经选取文件
if (FileUpload1.HasFile)
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(filename).ToLower();
//限定只能上传jpg和gif图片
string[] allowExtension = { ".jpg", ".gif",".xls",".word",".ppt" };
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
{
fileOk = true;
break;
}
}
//对上传文件的大小进行检测,限定文件最大不超过10M
if (FileUpload1.PostedFile.ContentLength > 10240000)
{
fileOk = false;
}
//最后的结果
if (fileOk)
{
try
{
FileUpload1.PostedFile.SaveAs(path2);
Response.Write("<script>alert('上传成功')</script>");
div2.Visible = true;
LinkButton1.Text = filename;
int filesize = FileUpload1.PostedFile.ContentLength;
int kbfilesize = filesize / 1024;
Label1.Text = kbfilesize.ToString() + "KB";
}
catch
{
Response.Write("<script>alert('上传失败')</script>");
}
}
else
{
Response.Write("<script>alert('文件类型或者文件大小超出10M')</script>");
} }
} /// <summary>
/// 附件下载模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void LinkButton1_Click(object sender, EventArgs e)
{
HttpResponse response = HttpContext.Current.Response;
FileInfo fileInfo = new FileInfo(Server.MapPath("~/upload/") + LinkButton1.Text);//获取文件夹地址+文件夹名称
response.Clear();
response.ClearHeaders();
response.Buffer = false;
response.ContentType = "application/octet-stream";//定义文件类型为".*"(所有文件类型)
response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(LinkButton1.Text, System.Text.Encoding.UTF8));
response.AppendHeader("Content-Length", fileInfo.Length.ToString());
response.WriteFile(fileInfo.FullName);//导出文件内容
response.Flush();
response.End();
}
}
解决方案 »
- 我怎样才能在HttpModules中根据不同的角色控制页面中Repeater控件按钮的可用性
- 为什么在IE8下不能居中???
- 简单 问题 下班结帖!!(2010-10-27)
- 把图片打包成zip格式下载,大神来啊
- asp.net项目由VS2005转为2008,新建VS2008解决方案,加载原WEB项目则找不到designer.cs文件?
- 一个关于datagrid的问题,谢谢大家帮忙看看
- 请l_clove(倚天把剑观沧海·天下)进来领分!
- 怎样定义字符串为ReadOnly?
- 数据库数据如何生成树形结构
- 请问哪里有关于webbrowser控件的帮助?
- 为什么我加入onload事件,会影响我的二级联动
- 求高手:document.getElementById(bID) 和document.all[bID]有哪些区别
第三方控件