当前位置:编程学习 > C#/ASP.NET >>

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

例如:
后台代码:

①数据验证部分

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,各位易做图我要如何设置才能只保存有改动的信息就好,而不用保存没改动的信息(原来没改动的还是保留着原来的信息呢)

各位易做图帮帮忙哦。。谢谢 --------------------编程问答-------------------- --------------------编程问答-------------------- FileUpload控件是只读的,不能设置值的,
另外,你也不可能知道客户端的路径。
如果不需要上传,请不要放FileUpload控件 --------------------编程问答--------------------
引用 2 楼  的回复:
FileUpload控件是只读的,不能设置值的,
另外,你也不可能知道客户端的路径。
如果不需要上传,请不要放FileUpload控件



需要啊,但是在修改页面的时候不一定会操作到上传啊,有上传才要文件保存上传的信息;我是想实现没上传时(也就是浏览框不存在任何可用路径时),不用保存那个浏览框的信息只保存以上信息编号、信息名称的信息就好,不然由于浏览框为空时保存后,那原本存在文件夹的文件也会变为0KB的。 --------------------编程问答-------------------- 再次给你说
FileUpload控件是只读的,不能预先设置值的,

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


补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,