为什么asp.net fileupload控制损坏的文件?

时间:2016-02-03 07:43:32

标签: c# asp.net ajax file-upload webforms

我正在使用FileUpload控件上传多个文件并且它确实成功但问题是当我上传后下载文件然后它变得腐败,即.pdf,.docx等。检查后我发现问题在于上传控制,因为我在上传后检查了服务器目录中的文件并尝试打开它,但文件抛出错误,即文件已损坏。

我检查了服务器目录中的每个上传文件,它也没有在那里工作,所以问题是上传错误了

protected void UploadIncomingLetterMaterial(int CaseLetterID)
{
    if (FileUpload1.HasFiles)
    {

        foreach (HttpPostedFile uploadedfiles in FileUpload1.PostedFiles)
        {
            string fileName = Path.GetFileName(uploadedfiles.FileName);
            FileUpload1.PostedFile.SaveAs(Server.MapPath("~/SiteImages/") + fileName);

            mngUploadedMaterialIncomingLetters.InsertUploadedMaterialIncomingLetters(fileName, "", CaseLetterID);
        }

更新

问题在于,当我上传多个文件时,它会使所有文件的大小相同。与循环中第一个文件的大小相同。

1 个答案:

答案 0 :(得分:1)

看起来这就是问题所在:

FileUpload1.PostedFile.SaveAs(Server.MapPath("~/SiteImages/") + fileName);

多次保存第一个文件 - 您尝试将当前所指的文件保存为uploadedfiles(应该是单数)。看起来你应该有:

foreach (HttpPostedFile uploadedFile in FileUpload1.PostedFiles)
{
    string fileName = Path.GetFileName(uploadedFile.FileName);
    uploadedFile.SaveAs(Server.MapPath("~/SiteImages/") + fileName);
    mngUploadedMaterialIncomingLetters.InsertUploadedMaterialIncomingLetters(fileName, "", CaseLetterID);
}