下列代码已经过调试,请参考。
protected void Btn_upfile_Click(object sender, EventArgs e)
{
String savePath = @"D:\upload\";
if (FileUpload.HasFile)
{
String filename;
filename = FileUpload.FileName;
savePath += filename;
string fileExt = System.IO.Path.GetExtension(FileUpload.FileName);
if (fileExt == ".xls")//判断文件类型是否符合上传要求
{
try
{
Lbl_msg.Text = "正在上传,请稍后......";
FileUpload.SaveAs(savePath);
Lbl_msg.Text = "上传完成,请进行下一步";
}
catch (Exception ex)
{
Lbl_msg.Text = "发生错误:" + ex.Message.ToString();
}
}
else
{
Lbl_msg.Text = "文件类型有误";
}
}
else
{
Lbl_msg.Text = "文件不存在";
}
}
你检查一下是不是放在updatePanel里面了
这个控件不能放在updatePanel里头的。
这个问题很有意思的,你用的FileUpload控件,在以前浏览器上PostedFile.FileName是获取的全部路径,我也是最近发现,在比较新的浏览器上他只能获取到文件名, string filename = filepath.Substring(filepath.LastIndexOf("\\")+1),这步就没有必要了,所以 string filename = filepath.Substring(filepath.LastIndexOf("\\")+1)这段代码比较过时,你可以直接this.FileUpload.filename直接获取上传的文件名,再就是你没有加断点去看看你的问题出到哪.
你的代码没错。
原因可能是你WEB目录下没有 Files 这个文件夹
这里有一个文件上传系统
参考一下或许有用