关于上传文件的验证和设置的问题,请各位大师帮帮忙哦,谢谢,看如何修改比较好哦
例如:
后台代码:
①数据验证部分
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,各位大师我要如何设置才能只保存有改动的信息就好,而不用保存没改动的信息(原来没改动的还是保留着原来的信息呢)
各位大师帮帮忙哦。。谢谢