asp.net input上传文件的几种方式
当客户端向服务器上传文件的时候,我们有时候是希望点击一个 button 或是 a 标签的时候,选择文件的对话框将自动弹出,
<input type="file" id="file" style="display:none"><br />
<input type="button" value="click" onClick="ok()"><br />
<input type="button" value="click" onClick="ok()"><br />
javascript ok方法:
function ok()
{
var s = document.getElementById("file");
s.style.display = "block";
s.click = true;
var str = s.value;
alert(str);
}
{
var s = document.getElementById("file");
s.style.display = "block";
s.click = true;
var str = s.value;
alert(str);
}
上面 str 便是客户端选择上传文件的路径,
但是,在asp.net的中使用
<input type='file' />
修改web.config文件中的参数可以设置该控件上传文件的大小,web.config中配置如下:在<system.web>节点下增加
<httpRuntime maxRequestLength="409600"/>
可以来设置
<input type='file' />
控件上传文件的大小,maxRequestLength以字节位单位
第一种上传方式:(纯HTML上传或是异文件上传)
页面文件:
<form id="form1" method="post" enctype="multipart/form-data" action="Details.aspx">
<input id="testId" type="file" name="testName"/>
<input id="testSubmit" type="submit" value="上传" />
</form>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
/* Files will be upload when postback */
if (!IsPostBack)
{
if (this.Request.Files.Count > 0)
{
HttpPostedFile f = this.Request.Files[0];
string fname = f.FileName;
/* startIndex */
int index = fname.LastIndexOf("\\") + 1;
/* length */
int len = fname.Length - index;
fname = fname.Substring(index, len);
/* save to server */
f.SaveAs(this.Server.MapPath("~/Files/" + fname));
Response.Write("<script type='text/javascript'>alert('Success!');</script>");
}
}
}
<form id="form1" method="post" enctype="multipart/form-data" action="Details.aspx">
<input id="testId" type="file" name="testName"/>
<input id="testSubmit" type="submit" value="上传" />
</form>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
/* Files will be upload when postback */
if (!IsPostBack)
{
if (this.Request.Files.Count > 0)
{
HttpPostedFile f = this.Request.Files[0];
string fname = f.FileName;
/* startIndex */
int index = fname.LastIndexOf("\\") + 1;
/* length */
int len = fname.Length - index;
fname = fname.Substring(index, len);
/* save to server */
f.SaveAs(this.Server.MapPath("~/Files/" + fname));
Response.Write("<script type='text/javascript'>alert('Success!');</script>");
}
}
}
第二种方式:(runat="server")
页面文件:
<input type="file" runat="server" id="testFile"/>
<input type="submit" id="testSubmit" value="上传" />
<br />
后台代码:
if (!IsPostBack)
{
/* input upload file */
if (Request.Files.Count > 0)
{
HttpPostedFile f = Request.Files[0];
string fname = f.FileName;
int index = fname.LastIndexOf("\\");
int len = fname.Length - index - 1;
fname = fname.Substring(index + 1, len);
f.SaveAs(this.Server.MapPath("~/Files/" + fname));
Response.Write("<script type='text/javascript'>alert('Success!');</script>");
}
}
<input type="file" runat="server" id="testFile"/>
<input type="submit" id="testSubmit" value="上传" />
<br />
后台代码:
if (!IsPostBack)
{
/* input upload file */
if (Request.Files.Count > 0)
{
HttpPostedFile f = Request.Files[0];
string fname = f.FileName;
int index = fname.LastIndexOf("\\");
int len = fname.Length - index - 1;
fname = fname.Substring(index + 1, len);
f.SaveAs(this.Server.MapPath("~/Files/" + fname));
Response.Write("<script type='text/javascript'>alert('Success!');</script>");
}
}
两种方式中<from> 和 <input> 请注意有点不同。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?