用Dim myInputFile As New HtmlInputFile()可以多次创建,
指定myInputFile的ID,注意别重复。
再用FindControl("你指定的控件ID")可以找到它们,然后取得值。
指定myInputFile的ID,注意别重复。
再用FindControl("你指定的控件ID")可以找到它们,然后取得值。
解决方案 »
- NHIBERNATE“/”应用程序中的服务器错误。
- 首页链接管理
- 判断获取过来的东西里面是否有图片,怎么做
- 郁闷!Asp.net页面调用dll,开发环境没问题,放到IIS7.0上就出错,请高手赐教!
- 关于在线WORD 编辑 和WORD文档添加电子印章.谁有思路 请给点
- 主域名与二级域名,基于角色的FORM验证可以共享身份票据吗??
- 如何将用户下载过哪些文件记录下来?
- 给位老大帮帮忙,二进制问题,急!!!!!!
- Group by 空行时默认为不空的结果一起group by
- ? 初学者请高手帮帮忙!!如何创建弹出消息框????谢谢!!
- [讨论]B/S系统中,保存用户名用Cookie好还是Session好
- 关于DataGrid的问题
<td id="fileplace" runat="server">
</td>
……
然后用 fileplace.Controls.Add(File1)就可以把File1添加到表格中去了。
多个File也可以一次Add
如果是第一种,那么用Request.Files[0], Request.Files[1]……就可以依次访问传输过来的文件,而传输页面上用Javascript在td的innerHTML中加上<input type='file' name='filex'>这样的东西就可以了如果是第二种,假如你准备上传 num 个文件,那么可以这样:
定义一个HtmlInputFile(刚刚写错了,抱歉)数组:static HtmlInputFile SrcFiles[] = new HtmlInputFile[20];然后用一个show()函数:void show() {
for ( int i=0; i<num; ++i ) {
fileplace.Controls.Add(SrcFiles[i]);
fileplace.Controls.Add(new LiteralControl("<br>")); // 添加一个换行符
}
}最后在 Page_Load 的时候调用 show() 即可
protected static int LIMIT = 1048576;
void Page_Load(Object sender, EventArgs e) {
String Path = Request.Form["trgpath"], Name = String.Empty;
bool blank = false;
if ( !Page.IsPostBack )
for ( int i=0; i<Request.Files.Count; ++i ) {
if ( Path==String.Empty )
Path="/";
try {
Name=Request.Files[i].FileName;
Name=Name.Substring(Name.LastIndexOf("\\"));
if ( Request.Files[i].ContentLength>LIMIT )
msgfield.InnerHtml+="文件:"+Request.Files[i].FileName+" 超过"+LIMIT.ToString()+"字节!<br>";
else {
Request.Files[i].SaveAs(Server.MapPath(Path)+Name);
++total;
msgfield.InnerHtml+="<font color=\"red\">文件:"+Request.Files[i].FileName+" 成功上传!</font><br>";
blank = true;
}
}
catch {
if ( Name!=String.Empty ) {
msgfield.InnerHtml+="文件:"+Request.Files[i].FileName+" 上传失败...<br>";
blank = true;
}
}
}
if ( blank )
msgfield.InnerHtml+="<br>";
if ( total==0 )
msgfield.InnerHtml+="很遗憾,没有任何文件上传成功。<br>可能是您输入的远程路经“"+Path+"”有误。";
else
msgfield.InnerHtml+="成功上传 "+total.ToString()+" 个文件。";
}
{
HtmlInputFile UpLoadFile = new HtmlInputFile();
UpLoadFile.Name="upload"+i.ToString();
UpLoadFile.ID="upload"+i.ToString();
DataGrid1.Controls.Add(UpLoadFile);
DataGrid1.Controls.Add(new LiteralControl("<br>"));
}
只不过我用的是VB.NET,我是这么做的:
'你在页面上拖的table控件
Protected WithEvents tblUpload As System.Web.UI.WebControls.Table Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
' 这个过程只显示控件哦,
Me.CreateFileControls(5, tblUpload, "File")
End Sub ' intUploadFileNumber - 你想上传的文件个数
' HtmlTable - 你在页面上拖的table控件
' ControlID - 控件的名字,随便你起啦
Private Sub CreateFileControls(ByVal intUploadFileNumber As Integer, ByVal HtmlTable As Table, ByVal ControlID As String) Dim myInputFile As HtmlInputFile
Dim intCircle As Integer
Dim htmlTD As TableCell
Dim htmlTR As TableRow For intCircle = 1 To intUploadFileNumber htmlTR = New TableRow()
htmlTD = New TableCell()
htmlTD.Text = "文件" & intCircle
htmlTR.Cells.Add(htmlTD)
htmlTD = New TableCell()
myInputFile = New HtmlInputFile()
myInputFile.ID = ControlID & intCircle
htmlTD.Controls.Add(myInputFile)
htmlTR.Cells.Add(htmlTD)
HtmlTable.Rows.Add(htmlTR) Next End Sub
' 该程序已调试,有任何问题请与游子联系:)