FileName为什么一直为空

YYBYYB1984 2009-07-26 02:52:06
    
string fileName1 = this.FileUploadAddrPic.FileName;
FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + fileName1);
hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + fileName1;

为什么fileName1一直为空,之前测试通过,现在就是报错。
因为fileName为空,所以下面的SaveAs一直找不到文件!
帮忙,B/S学的少。
...全文
577 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delta 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 deltallp 的回复:]
学习一下,看一下Post_Load()中的一些东西吧。可能会清空值。我以前遇到过。
[/Quote]写错了,是Page_Load().
Delta 2009-07-27
  • 打赏
  • 举报
回复
学习一下,看一下Post_Load()中的一些东西吧。可能会清空值。我以前遇到过。
bl_song 2009-07-27
  • 打赏
  • 举报
回复
可以判断下有没有获得FileUpload里的文件。

用if(FileUpLoad.hasFile)
akpeter 2009-07-26
  • 打赏
  • 举报
回复
页面是不是加了Ajax控件“updatapanl”,加了取不到了
YYBYYB1984 2009-07-26
  • 打赏
  • 举报
回复
既然重启搞定了,晕,给分。
grzx2210 2009-07-26
  • 打赏
  • 举报
回复
我想问下你是不是放在updatepanel里面了,他们两个微软做的不兼容,具体要实现无刷新,应该用ifreame实现,还有其他办法,具体google下
YYBYYB1984 2009-07-26
  • 打赏
  • 举报
回复
谢谢各位。
我继续测试一下。
xml120 2009-07-26
  • 打赏
  • 举报
回复
可以判断下有没有获得FileUpload里的文件。

用if(FileUpLoad.hasFile)

wuxiupeng 2009-07-26
  • 打赏
  • 举报
回复
1. 你应该首先判断 FileUpload 是否为空
if(!this.FileUploadAddrPic.HasFile){}
2. 取得上传文件名称直接 使用 string fileName1 = this.FileUploadAddrPic.FileName;
就可以
3. 发一个成功使用的图片上传例子你参考一下
//上传营业执照
<asp:FileUpload ID="imgfile" runat="server" />
protected void Button3_Click(object sender, EventArgs e)
{
if (!imgfile.HasFile)//是否上传图片
{
isUploadImg=false;
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "请上传图片"));
//Response.Write("<script>alert('请上传图片')</script>");
//RegisterStartupScript("", "<script language=\"javascript\">window.alert('请上传图片!')</script>");
}
else
{
//图片格式限制 bmp/jpg/gif
if (this.imgfile.PostedFile.ContentType == "image/bmp" || this.imgfile.PostedFile.ContentType == "image/jpg" || this.imgfile.PostedFile.ContentType == "image/gif" || this.imgfile.PostedFile.ContentType == "image/pjpeg")
{
//图片大小限制小于3MB
if (this.imgfile.PostedFile.ContentLength > 1024 * 3072)
{
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "上传图片太大,图片大小应小于3MB"));
}
else
{
//Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "文件路径" + this.imgfile.PostedFile.FileName + "图片类型" + this.imgfile.PostedFile.ContentType + "图片大小" + this.imgfile.PostedFile.ContentLength));
string path = Server.MapPath("~/Superdisplay/zhengshu/");
string filePath = path + this.imgfile.FileName;

//判断图片是否存在
FileInfo nowfile = new FileInfo(filePath);
if (nowfile.Exists)
{
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片已经存在,请换张图片,或修改该图片名称"));
this.imgShow.Visible = false;
}
else
{
try
{
this.imgfile.SaveAs(path + this.imgfile.FileName);
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "上传营业执照图片成功"));
ViewState["sellCard"] = "~/Superdisplay/zhengshu/" + imgfile.FileName;
this.imgShow.Visible = true;
this.imgShow.ImageUrl = "~/Superdisplay/zhengshu/" + imgfile.FileName;
}
catch (Exception ex)
{
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片上传失败,请重新上传"));
}

}

}
}
else
{
Response.Write(string.Format(JsHelper.WINALERTSCRIPT, "图片格式只能为bmp或jpg或gif"));
}
}
zzs_happy 2009-07-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zzs_happy 的回复:]
楼主,我把你的代码测试过了,没什么问题。

你往服务器设置及配置文件方面想一想:
一:iis中是否允许你上传你的文件类型;
二:.net默认上传不超过4M的文件。
[/Quote]


没注意看你的问题,
是因为fileName为空,所以下面的SaveAs一直找不到文件!

可能是编译器出错了也说不定,重启一下电脑。。。。

呵呵
我丢人了,闪了。
zzs_happy 2009-07-26
  • 打赏
  • 举报
回复
楼主,我把你的代码测试过了,没什么问题。

你往服务器设置及配置文件方面想一想:
一:iis中是否允许你上传你的文件类型;
二:.net默认上传不超过4M的文件。
孟子E章 2009-07-26
  • 打赏
  • 举报
回复
检查下是不是FileUpload 控件嵌套了别的控件里面了?或者是没有放在<form runat=server>里面?另外,form是不能嵌套的。看看你的浏览器的html代码有几个form

.ToString();
多此一举,FileName本身就是String类型了。
YYBYYB1984 2009-07-26
  • 打赏
  • 举报
回复

<asp:FileUpload ID="FileUploadHotelPic" runat="server" /></td>
YYBYYB1984 2009-07-26
  • 打赏
  • 举报
回复

string fileName1 = this.FileUploadAddrPic.PostedFile .FileName.ToString();
string fileName1 = this.FileUploadAddrPic.FileName.ToString();
string fileName1 = this.FileUploadAddrPic.FileName;

以上三中方式现在都不行,
我很奇怪,为什么之前可以,现在突然就出现这样的问题呢?
离子漂浮物 2009-07-26
  • 打赏
  • 举报
回复
初始化FileUploadAddrPic时是不是没有this.IsPostBack。
孟子E章 2009-07-26
  • 打赏
  • 举报
回复
string fileName1 = this.FileUploadAddrPic.FileName;
可以吗?
你是不是在aspx里使用js处理过了?
YYBYYB1984 2009-07-26
  • 打赏
  • 举报
回复

protected void Button1_Click(object sender, EventArgs e)
{
H_Hotel hotel = new H_Hotel();
hotel.HotelSN = txtHotelSN.Text.ToString().Trim();
hotel.HotelName = txtHotelName.Text.ToString().Trim();
hotel.HotelAddress = txtHotelAddr.Text.ToString().Trim();
hotel.HotelIntroduce = txtHotelIntr.Text.ToString().Trim();
hotel.IsRecommend = Convert.ToInt32(txtRecommend.Text.ToString().Trim());
hotel.AvePrice = txtPrice.Text.ToString().Trim();
hotel.MemberTel = txtMemeberNumber.Text.ToString().Trim();

string fileName1 = this.FileUploadAddrPic.PostedFile .FileName.ToString();
//跟踪这里的fileName1 为空!
FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + fileName1);
hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + fileName1;

string fileName2 = this.FileUploadHotelPic.FileName.ToString();
FileUploadHotelPic.SaveAs(Server.MapPath ("~\\Prod_Images") + "\\" + fileName2);
hotel.HotelPicture = "~\\Prod_Images" + "\\" + fileName2;
IUDMethed iud = new IUDMethed();
if (type == "1")
{
iud.AddHotel(hotel);
}
else
{
iud.UpdateHotel(hotel);
}
}
zzs_happy 2009-07-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zzs_happy 的回复:]
C# codestring fileName1=this.FileUploadAddrPic.FileName;
以上只是取得特定的文件名,应该这样子来:string fileName1=this.FileUploadAddrPic.FileName.ToString();//取得特定文件名FileInfo f_into=new FileInfo(fileName1);//取得文件信息string¡­
[/Quote]

其中fileName1=this.FileUploadAddrPic.FileName.ToString();//取得特定文件名FileInfo
修改为fileName1=this.FileUploadAddrPic.PostedFile.FileName.ToString();//取得特定文件名FileInfo
zzs_happy 2009-07-26
  • 打赏
  • 举报
回复
string fileName1 = this.FileUploadAddrPic.FileName;
以上只是取得特定的文件名,应该这样子来:
string fileName1 = this.FileUploadAddrPic.FileName.ToString();//取得特定文件名
FileInfo f_into = new FileInfo(fileName1);//取得文件信息
string f_name = f_into.Name.ToString();//取得文件名;
FileUploadAddrPic.SaveAs(Server.MapPath("~\\Prod_Images") + "\\" + f_name);
hotel.HotelAddressImage = "~\\Prod_Images" + "\\" + f_name;
dong547785510 2009-07-26
  • 打赏
  • 举报
回复
上下文代码太少了。看不出来那里错了
加载更多回复(6)

62,046

社区成员

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

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

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

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