关于上传文件的验证和设置的问题,请各位大师帮帮忙哦,谢谢,看如何修改比较好哦

qing2qing3de4 2012-04-05 09:55:29
例如:
后台代码:

①数据验证部分

string extension = System.IO.Path.GetExtension(myFileUpload.FileName);
string strFileNewName = IllustrationId.Text + ".pdf";

string path = HttpContext.Current.Server.MapPath(Constant.strPDFUploadFilePath + this.IllustrationId.Text + ".pdf");
if (!File.Exists(path))//文件不存在本地文件夹
{
if (!(myFileUpload.HasFile)) //浏览框也为空时
{
ErrorMsg += (this.LabelmyFileUpload.Text = "檔案不能为空!");
}
else
{
if (extension != ".pdf" && extension != ".PDF")
{
ErrorMsg += (this.LabelmyFileUpload.Text = "系统只能接受PDF格式的文件!");
}

else if (myFileUpload.PostedFile.ContentLength > 20 * 1024 * 1024)//文件限制20MB
{
ErrorMsg += (this.LabelmyFileUpload.Text = "檔案上傳限制20MB!");
}
else
{
//myFileUpload.SaveAs(path);
this.LabelmyFileUpload.Text = "";
}
}
}
else //文件存在本地文件夹
{
if (!(myFileUpload.HasFile)) //浏览框为空时
{
//这部分是想要实现文件存在本地文件夹时,浏览框也没上传新的文件时,还是默认保存原来存在本地文件夹的文件,而不保存空的浏览框。。。或者跳过这个浏览框不保存,只保存以上有改动的信息,不懂怎么写比较好哦 }
else //实现浏览框有重新上传新的文件时的验证,验证通过即保存(浏览框不为空时)
{
if (extension != ".pdf" && extension != ".PDF")
{
ErrorMsg += (this.LabelmyFileUpload.Text = "系统只能接受PDF格式的文件!");
}

else if (myFileUpload.PostedFile.ContentLength > 20 * 1024 * 1024)//文件限制20MB
{
ErrorMsg += (this.LabelmyFileUpload.Text = "檔案上傳限制20MB!");
}
else
{
//myFileUpload.SaveAs(path);
this.LabelmyFileUpload.Text = "";
}
}
}



② //// 保存按鈕部分
if (illustrationbll.Update(illustmodel, updatemodel))
{
if (myFileUpload.PostedFile.ContentLength > 0 * 1024)
{
myFileUpload.SaveAs(Server.MapPath(Constant.strPDFUploadFilePath + strFileNewName));
MessageBox.ShowAndRedirect(this, "保存成功!", "IllustrationList.aspx");
}
else
{
MessageBox.ShowAndRedirect(this, "保存失敗!", "IllustrationList.aspx");
}
}
}
以上只是后来修改的代码,但是并不是我想要的效果,因为设置 (myFileUpload.PostedFile.ContentLength > 0 * 1024)
这个条件后只会提示“保存成功”,"保存失敗!", 并没有实现我想要的功能。

我想要的效果如下:

在asp.net中要实现修改“信息编号”、“信息名称”、“信息档案”(上传pdf文件,使用的是文件上传控件FileUpload)这三栏,可是当修改完信息保存后(信息档案没修改,还是保留原来存在本地的文件),要打开文件时,文件却变为了0KB,因为修改保存的时候,浏览框没重新上传文件,它就默认保存了空的浏览框,所以才显示0KB,各位大师我要如何设置才能只保存有改动的信息就好,而不用保存没改动的信息(原来没改动的还是保留着原来的信息呢)

各位大师帮帮忙哦。。谢谢
...全文
63 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-04-05
  • 打赏
  • 举报
回复
再次给你说
FileUpload控件是只读的,不能预先设置值的,

文件也会变为0KB
说明文件不用上传,不要再进行保存了,明白吗?只有不是0KB的才是需要修改的文件


qing2qing3de4 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
FileUpload控件是只读的,不能设置值的,
另外,你也不可能知道客户端的路径。
如果不需要上传,请不要放FileUpload控件
[/Quote]


需要啊,但是在修改页面的时候不一定会操作到上传啊,有上传才要文件保存上传的信息;我是想实现没上传时(也就是浏览框不存在任何可用路径时),不用保存那个浏览框的信息只保存以上信息编号、信息名称的信息就好,不然由于浏览框为空时保存后,那原本存在文件夹的文件也会变为0KB的。
孟子E章 2012-04-05
  • 打赏
  • 举报
回复
FileUpload控件是只读的,不能设置值的,
另外,你也不可能知道客户端的路径。
如果不需要上传,请不要放FileUpload控件

62,267

社区成员

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

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

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

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