无法在asp.net中上传空白文件

问题描述 投票:0回答:2

我是.NET的新手,刚开始学习.NET技术。我写了一个代码来上传文件。代码如下

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;

 namespace WebApplication2
 {
public partial class FileUpload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);

            if (fileExtension.ToLower() != ".doc" && fileExtension.ToLower() != ".docx")
            {
                Label1.Text = "Only Doc and Docx files are allowed";
                Label1.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                if (FileUpload1.PostedFile.ContentLength > 2097152)
                {
                    Label1.Text = "Limit of file size is 2MB";
                    Label1.ForeColor = System.Drawing.Color.Red;
                }
                else
                {
                    if (System.IO.File.Exists(Server.MapPath("~/Files/" + FileUpload1.FileName)))
                    {
                        Label1.Text = "This is file already exists.";
                        Label1.ForeColor = System.Drawing.Color.Red;
                    }
                    else
                    {
                        FileUpload1.SaveAs(Server.MapPath("~/Files/" + FileUpload1.FileName));
                        Label1.Text = "File uploaded successfully";
                        Label1.ForeColor = System.Drawing.Color.Green;
                    }
                }
            }
        }
        else
        {
            Label1.Text = "Please select a file to be uploaded";
            Label1.ForeColor = System.Drawing.Color.Red;
        }
    }
}
}

所有方案都运行正常。但是当我尝试上传空白文件时,它会显示我的消息“请选择要上传的文件”,就像我没有选择任何内容一样。有没有办法上传空白文件?

asp.net .net file-upload
2个回答
1
投票

HasFile是:

public bool HasFile
{
    get
    {
        HttpPostedFile postedFile = this.PostedFile;
        if (postedFile != null)
        {
            return (postedFile.ContentLength > 0);
        }
        return false;
   }
} 

,它为空文件返回false。为此创建一些解决方法。


0
投票

感谢您的建议,我能够找到解决方案。

if (FileUpload1.FileContent.Length == 0 && FileUpload1.FileName != "")

上述标准将告诉我们用户已选择一个完全为空的文件。

© www.soinside.com 2019 - 2024. All rights reserved.