下面说的都是基于ASP.NET VB做的:    我做了个上传的页面  FTP.aspx   ,再做了另一个注册页面 ZhuCe.aspx   .  ZhuCe.aspx 在这页里我要浏览者提交相关的注册信息,同时如果他需要上传图片的话就可以用FTP.aspx这页了[我在 ZhuCe.aspx 这页里,通过 <iframe src="FTP.aspx"></iframe>调用 FTP.aspx 页]。在FTP.aspx这页里我用了个 Session("xx_WenJianMing") = FileName ,再在ZhuCe.aspx 页里用了个隐藏域[ <input name="xx_xiangpian" type="hidden" id="xx_xiangpian" value="<%= Session("xx_WenJianMing")%>"> ],希望在ZhuCe.aspx这页里能得到FTP.aspx里那写的那个值,然后同其他注册信息一起放到数据库中去。
   现在遇到的问题是:上传文件后非手动刷新下 ZhuCe.aspx 页面才会有Session("xx_WenJianMing")这个值。有没有解决的办法,可不可以控制ZhuCe.aspx页中Session读取数据的时间频率。我不懂,可能想法太过了。
   大侠多多指点。

解决方案 »

  1.   

    你可以在ftp.aspx这个页面成功上传之后,用脚本控件父页面zhuce.aspx这个页面,将上传的文件写在此页面中的某个hidden里面,此页面提交之后,即可从此hidden里面取到值了.
    ftp.aspx
    成功保存文件后写脚本
    this.response.write("<script>parent.document.all('hidden1').value='" + 上传的文件名 + "'</script>");
      

  2.   

    [摸到一点门槛]
                 我按照你说的做了下,还是不能解决问题。
            这个问题应该牵涉脚本,我这个也是模仿其他论坛来做的。他们也用了2页来做同时提交上传文件名和其他注册信息。
            我用他们的上传文件后,文件名马上就会到ZhuCe.aspx页面来。
            可以看看www.flash8.net  论坛里的发表主题页面,他那就有这种功能。
            我的FTP.aspx页也是用ASP.NET VB做的,加你这句this.response.write("<script>parent.document.all('hidden1').value='" + 上传的文件名 + "'</script>")就报错。
      

  3.   

    你是VB写的,那当然要把我写的语句转换一下了,怎么能直接往里面添呢?报错是当然的.
    response.write("<script>parent.document.all('hidden1').value='" + 上传的文件名 + "'</script>")
    把this去掉就可以了.
    你看人家回答问题,关键是要看他的思路,假设思路是对的,那么你完全可以根据他的思路来自己解决问题.
    还有,如果你是用VB的,那么一定要注明自己写的语言,因为这里的回答恐怕大多数是C#.
      

  4.   

    你这真说到实处了,这大多数都是用C#。我还是初学这个。
    昨天我去掉this也试过,不知道我那弄错了,也没成功:(下面是部分代码)
    ...
    <script language="vb" runat="server">
    ...UpLoadFile.PostedFile.SaveAs(Server.MapPath("\01YongHu\XiangPian\") & Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":","")))    ’这一段是上传文件的路径,后面的是把文件名替代成当时的时间。Session("xx_xiangpian") = Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":",""))   ’这就是我说的,把文件名写到了Session("xx_xiangpian")里去了。按照你说的,应该把上面这句改成你说的(我肯定改错了,没学过脚本):
    response.write("<script>parent.document.all('xx_xiangpian').value=Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":",""))</script>").....
    </script>
      

  5.   

    你这样写程序是个很不好的习惯,语句太复杂,容易出错.
    dim FileName as string = DateTime.Now().ToString("yyyyMMddhhmmss") & ".后缀名";
    response.write("<script>parent.document.all('xx_xiangpian').value='" & FileName & "';</script>")
    我不知道VB里面取时间的用法是不是上述语法,我想应该相同的.
    你上面的写法错误,后面的replacce没有放在双引号外,这样就变成了脚本了而不是服务端.
      

  6.   

    string a;
    string[] b;
    a=File1.PostedFile.FileName.ToString();
    b=a.Split(new Char[] {'\\'},40);
    filename=b[b.Length-1];
    这样就好了,我用的是C#,只给你一个思路。
      

  7.   

    [摸到一点门槛]
    还是不行:
    <%@ Import Namespace="System"%>
    <%@ Import Namespace="System.Web.HttpPostedFile"%>
    <%@ Import Namespace="System.Web.UI.HtmlControls.HtmlInputFile"%>
    <script language="vb" runat="server">
    Sub UpLoad(sender As Object, e As System.Web.UI.ImageClickEventArgs)
       dim Temp() as String = Split(UpLoadFile.PostedFile.FileName,"\")
       dim FileName as String = Temp(Temp.Length - 1)
       dim Lei() as String = Split(UpLoadFile.PostedFile.FileName,".")
       dim Xing as String = Lei(Lei.Length - 1)
               
               UpLoadFile.PostedFile.SaveAs(Server.MapPath("\01YongHu\XiangPian\") & Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":","")))
       Session("xx_xiangpian") = Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":",""))
       我改成了:
           dim xiangpian as string = Replace(FileName,FileName,Replace(Replace(now() & "." & Xing,"-",""),":",""))
           response.write("<script>parent.document.all('xx_xiangpian').value='" & xiangpian & "';</script>")***调试反应: 编译器错误信息: BC30648: 字符串常数必须以双引号结束</script>
    -----------------------------------------------------------------------------------------
    <form enctype="multipart/form-data" runat="server">
    <input type="file" runat="server" id="UpLoadFile" style="width:162pt; height:12pt ">
    <asp:Button ID="Button1"  Text="上传" runat="server" OnClick="UpLoad" />
    </form>
    ----------------------------------------------------------------------------------------   太谢谢大侠的建议,我是完全自学的,很多东西都不知道。能在网上遇见您真是太高兴了。
    你有QQ吗!可以加我吗。
      

  8.   

    你干脆这样,先在页面写一个脚本
    <script language=javascript>
    function get_name(myvalue)
    {
    parent.document.all("xx_xiangpian").value = myvalue;
    }
    </script>然后上面写的改如下:
    response.write("<script>get_name(""" & xiangpian & """);</script>")还有,你最好运用页面与代码分离的方式来写代码.这样写,没有语法提示,很难写.
    具体做法:
    在net里面新建项目,完成后在"解决方案资源管理器"里面添加aspx文件,此时,生成的页面就显示在页面中,此页面中只写表格控件等,双击此页面,进入到后台代码里面写后台代码.
      

  9.   

    感谢大侠了,我要好好的来看看JavaScript  。
    可手头没什么好的资料信息。这个迟早都要来学的,今后做新闻报道系统的时候肯定也要用到这个。其一一遍新闻里面要附加图片上去,也要上传图片后,把相应的文件名信息和其他文字信息一并放到数据库中。
       现在我对表单中的文本框认识不够,做出来的是个死东西,而不能从外面得到信息,这看来都是不懂JavaScript 原因。真不知道那会有比较好的介绍。您遇见过吗!