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;
}
}
}
补充:.NET技术 , ASP.NET