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

FileUpload控件,选择要上传的文件后,后台取不到文件信息,hasFile总是为false

查了一下,说有可能是和ajax冲突的问题,可是我的页面里又没有用ajax,谁知道是怎么回事呢?
--------------------编程问答-------------------- 看看ASPX的代码!!! --------------------编程问答-------------------- <table width="400px" cellspacing="1" cellpadding="1" border="0" runat="server" class="EditTable">
      <tr>
        <td class="CaptionItem">
            图片</td>
        <td class="InputItem">
            <asp:FileUpload ID="fupImageUP" runat="server" /></td>
    </tr>
    </table>

在后台代码,this.fupImageUP.HasFile = false --------------------编程问答-------------------- 我也是同样问题 --------------------编程问答--------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UploadFiles.aspx.cs" Inherits="UploadFiles" StyleSheetTheme="Aspnet3DBWeb" %>

<!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">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title>同时上载多个文件</title>
    <script language="javascript" type="text/javascript">
    function addOneFile(maxcount)
    {        
        var file = document.getElementsByName("file");    
        if(file.length == 1 && file[0].disabled == true)
        {   ///如果只存在一个浏览文件的控件,则把该控制设置为可用
            file[0].disabled = false;
            return;
        }
        if(file.length < maxcount)
        {   ///添加一个浏览文件的控件
            var filebutton = '<br /><input type="file" size="50" name="file" />';
            document.getElementById('pFileList').insertAdjacentHTML("beforeEnd",filebutton);
        }
    }
</script>
</head>
<body>
    <form id="myForm" runat="server" method="post" enctype="multipart/form-data">
    <table border="0" cellpadding="3" cellspacing="1">
        <tr>
            <td>
                <p id="pFileList"><input type="file" disabled="disabled" size="50" name="file" /></p>
                <input type="button" value='增加一个文件' onclick="addOneFile(<%= FILEMAXCOUNT %>)" /><span
                    style="color: red"><font color="red">(最多上传 <%= FILEMAXCOUNT%> 个文件)</font><br /> 
                </span>单击此按钮增加一个上传文件按钮。如果文件的名称或者内容为空,则不上传该文件。                    
            </td>
        </tr>
        <tr>
            <td>                
                <asp:Button ID="btnCommit" runat="server" Text="上载所有文件" 
                    OnClick="btnCommit_Click" /> <asp:Label ID="lbMessage" runat="server" CssClass="Text" ForeColor="Red"></asp:Label>            
            </td>            
        </tr>
    </table>
    </form>
</body>
</html>

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

///引入新的命名空间

using System.IO;

public partial class UploadFiles : System.Web.UI.Page
{
    /// <summary>
    /// 每一次最多上载文件的数量
    /// </summary>
    protected int FILEMAXCOUNT = 4;

    protected void btnCommit_Click(object sender,EventArgs e)
    {      ///从Request对象中获取上载文件的列表
        HttpFileCollection files = HttpContext.Current.Request.Files;
        Response.Write(files.Count);
        if(files == null) return;

        
        try
        {   ///处理文件列表中的每一个文件
            for(int i = 0; i < files.Count; i++)
            {   ///获取当前上载的文件
                HttpPostedFile postedFile = files[i];
                if(postedFile == null) continue;
                ///获取文件的类型和大小
                string type = postedFile.ContentType;
                int size = postedFile.ContentLength;
                ///获取文件的名称和扩展名
                string fileName = Path.GetFileNameWithoutExtension(postedFile.FileName);
                string extension = Path.GetExtension(postedFile.FileName);
                ///获取基于时间的文件名称
                string timeFilename = ASPNET3DBBookSystem.CreateStringByCurrentDateTime();
               // Response.Write(timeFilename);
                ///创建保存文件的虚拟路径
                string url = "Files/" + fileName + extension;
                ///获取全路径
                string fullPath = Server.MapPath(url);
                ///判断是否存在相同名称的文件
                if(System.IO.File.Exists(fullPath) == true)
                {
                    lbMessage.Text = "上载文件的已经存在,请重新选择文件!";
                    return;
                }
                ///上载文件
                postedFile.SaveAs(fullPath);
                ///把上载文件的信息添加到数据库中
                //if(file.AddFile(fileName,type,size,url) > 0)
                //{
                //    lbMessage.Text = "恭喜您,上载文件成功!";
                //}
            }
        }
        catch(Exception ex)
        {   ///显示上载文件的操作失败消息
            lbMessage.Text = "上载文件错误,错误原因为:" + ex.Message;
            return;
        }
    }
}
--------------------编程问答-------------------- this.fupImageUP.HasFile   =   false --------------------编程问答-------------------- 点提交按键前,看下html里那里是什么呢?form的action指向哪里
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,