在input type="file"标签中获取上传文件的完整路径
由于在注册页面中使用了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);
}
}
谢谢,在线等。