FileUpload控件没有取文件名

时间:2011-10-28 05:17:12

标签: c# asp.net

我正在使用FileUpload Control上传图片,我可以使用该浏览按钮选择图像,但是当我尝试预览所选择的图像时,我没有得到文件名,它显示为空..

protected void btnImgUpload_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        string strimage;
        string strfilename, strextn;
        if (fupImage.HasFile)
        {

在上面的代码中,fupImage.FileName属性应该选择Image name,但它仍然是空字符串“”,因此fubImage.HasFile条件为false。我不明白为什么条件会变错,而文件被选中,?这有什么问题?

提前致谢

2 个答案:

答案 0 :(得分:2)

我做了什么来测试它 我创建了一个Asp页面

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:FileUpload ID="fupImage" runat="server" />
        <asp:Button ID="btnImageUpload" runat="server" onclick="btnImageUpload_Click" 
            Text="Upload" />

    </div>
    </form>
</body>
</html>

并且课程背后的代码是

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 WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }


        protected void btnImageUpload_Click(object sender, EventArgs e)
        {
            try
            {
                string strimage;
                string strfilename, strextn;
                if (fupImage.HasFile)
                {
                    //do something
                }
            }
            catch
            {
            }
        }
    }
}

并没有出现任何问题

我想说测试它只是创建一个非常简单的实例并在复杂的环境中测试它可能会有一些额外的规则可能会阻止正常的工作!有时它看起来如此unnoraml

答案 1 :(得分:1)

检查该文件上传器控件的View-state属性,如果View-state为false,那么在回发后你将获得空值