在input type="file"标签中获取上传文件的完整路径

fanxin_1999 2011-08-27 12:53:01
由于在注册页面中使用了jquery validation验证,把所有的服务器端控件修改成客户端控件。是的上传文件的功能不能正常运行了。错误提示为,必须在runat="server" 中运行。所以在上传文件的部分加上了runat="server" 。可是新的问题又出现了。InputFile.Value取到的值是空,程序无法正常运行。 请问如何进行修改。是否还有其他办法来解决。

前台页面
<form runat="server">
<input type="file" name="InputFile" id="InputFile" runat="server"/>
<%if (_bool = true)
{ %><asp:Button ID="UploadButton" Text="上传" onclick="Button2_Click" runat="server" /><%}
else if (_bool = false)
{ %> 上传成功 <%} %>
后台代码(这段代码在没有添加表单验证的代码之前,是能够正常运行的)
protected void Button2_Click(object sender, EventArgs e)
{
string uploadName = InputFile.Value;//获取待上传图片的完整路径,包括文件名
//string uploadName = InputFile.PostedFile.FileName;
string pictureName = "";//上传后的图片名,以当前时间为文件名,确保文件名没有重复
if (InputFile.Value == "")
{
this.Response.Write("<script language=javascript>alert('请选择图片文件上传!!');location.href='CounselLogin.aspx';</script>");
}
else if (InputFile.Value != "")
{
int idx = uploadName.LastIndexOf(".");
string suffix = uploadName.Substring(idx);//获得上传的图片的后缀名
pictureName = DateTime.Now.Ticks.ToString() + suffix;
}
try
{
if (uploadName != "")
{
string path = Server.MapPath("~/Certificate/");
InputFile.PostedFile.SaveAs(path + pictureName);
_bool = true;
}
}
catch (Exception ex)
{
Response.Write(ex);
}
}


谢谢,在线等。
...全文
2851 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
萧炎 2011-08-27
  • 打赏
  • 举报
回复
怎么感觉都是属于粗心出错的呢
流枫Maple 2011-08-27
  • 打赏
  • 举报
回复
public override void VerifyRenderingInServerForm(Control control)
{
}

在后台加上这句就ok了 我也碰到过。
AsuraLie 2011-08-27
  • 打赏
  • 举报
回复
InputFile.FileName ?
如果没有什么特殊的要求,你为什么不直接用FileUpload控件呢?
changlr01 2011-08-27
  • 打赏
  • 举报
回复
打错了,它使用的是 js+flash 实现
changlr01 2011-08-27
  • 打赏
  • 举报
回复
建议你使用 第三方上传组建 例如 swfupload (jquery+flash)


站在巨人的肩膀上才能看的更远

演示地址 :http://demo.swfupload.org/v250beta3/
fanxin_1999 2011-08-27
  • 打赏
  • 举报
回复
先表示感谢。

<%if (_bool == true)

前台页面的代码改好了,主要还是后台的问题。如何获得上传路径。

等啊等。。
子夜__ 2011-08-27
  • 打赏
  • 举报
回复
<%if (_bool = true)
{ %><asp:Button ID="UploadButton" Text="上传" onclick="Button2_Click" runat="server" /><%}
else if (_bool = false)
{ %> 上传成功 <%} %>
少=号。

LMAOhuaNL 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kongwei521 的回复:]

换成 <asp:FileUpload ID="FileUpload1" runat="server" Width="600px" />这个
http://www.cnblogs.com/shengtianlong/archive/2010/11/29/1891010.html
http://apps.hi.baidu.com/share/detail/22013279
参考
[/Quote]
这个不错,你调试看看怎么回事
dalmeeme 2011-08-27
  • 打赏
  • 举报
回复
是不是代码逻辑有问题啊,
<%if (_bool = true)
{ %><asp:Button ID="UploadButton" Text="上传" onclick="Button2_Click" runat="server" /><%}
else if (_bool = false)
{ %> 上传成功 <%} %>

if判断里怎么是赋值语句啊,把==错写成=了吧。。。
蝶恋花雨 2011-08-27
  • 打赏
  • 举报
回复
换成 <asp:FileUpload ID="FileUpload1" runat="server" Width="600px" />这个
http://www.cnblogs.com/shengtianlong/archive/2010/11/29/1891010.html
http://apps.hi.baidu.com/share/detail/22013279
参考

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧