我的代码在前台有用到Ajax根据用户选择要上传的照片数量出现相应个数的上传窗口~
比如~  用户选择上传5张照片~
出现5个
<input type = "file" size = "31" name = "Pic1" Runat = "server">name的名字我可以控制住从Pic1到Pic5~但我的后台当要设置保存的路径的时,
如果是定义死的~~~在页面最上方写了
Protected WithEvents Pic1 As System.Web.UI.HtmlControls.HtmlInputFile
我可以写
Me.Pic1.PostedFile.SaveAs(Server.MapPath("../../Pictures/" & PicName))但是现在我的前台页面没定义死~用Ajax它可能出现至Pic25
我不可能实例化25个对象啊~~有有什么办法么?或则思路想法~  给点啊~  拜托

解决方案 »

  1.   

    动态js生成<input>,提交时遍历<input>将路径以'c:\\123.txt|d:\\txt.123'的形式存在Hidden中,服务器端获取
      

  2.   

    前台页面生成<input>我已经做好了~,
    <select name="num" id="num" onChange="javascript:changeNum(this);">
    根据它里面值的变化,已经可以显示相应数量的<input>了~我在后台~想用一个循环,写出下列效果
    If Me.Pic1.PostedFile.ContentLength > 0 Then
         Me.Pic1.PostedFile.SaveAs(Server.MapPath("../../Pictures/" & PicName))
         conn.Execute(sql)
    End If
    在这里~我的Pic1已经实例过了~
    可是~如果~用户在前台选择了一次上传25个~我是不是要事先在我的后台~把这25个都声明过~?
      

  3.   

    在yahoo邮箱中添加附件的时候~可以添加要上传的文件个数,然后点击上传后用户可一次上传多个文件~就不用像上面说的上传100次一定要点100次上传了~
    但yahoo中是事先在页面中写好了50个上传控件~就是说页面打开的时候~
    这50个对象都已经存在了~~但我在一个冲印网站发现~它的页面一加载的时候,只不过有10个上传,后面用户选择第11个的时候~后台应该是没有这第11个对象的,因为这第11个只是用js脚本写进去的,页面没有刷新过
    ~就是我现在遇见的错误~那么~他的后台是如何在前后台没有交互的过程下~识别第10个以后的对象的呢?
      

  4.   

    恩,我明白lz的用途了,其实也就是选择多少个文件自动生成多少个fileupload,这样的话,在后台遍历控件的类型应该可以:dim ctl as control
    for each ctl in me.controls
        if ctl.gettype()="HtmlInputFile" then
           ctype(ctl,HtmlInputFile).PostedFile.SaveAs(Server.MapPath("../../Pictures/" & PicName))
        end if
    next