多文件上传,如果文件大的话耗时较长
因此在每个file控件后加了个滚动条
上传时,用ajax来一次提交一个form
依次来控制滚动条 
常见的方法是打开一个新窗口或当前页面刷新一次 怎样提交form而不弹出新窗口且当前页面也不改变?
注:易贝的图片站是这样上传的,它的html文件是这样的
 <FORM id=zupload_form_3 name=zupload_form_3  action=http://www.vendio.com/my/ihost/uploadimage.html? method=post 
  target=zoom_upload encType=multipart/form-data><INPUT id=img_file 
  type=file onchange=on_file_change(3); size=30 name=img_file> 
</FORM> 
页面中有多个类似上面的form,只是里面的id和name不同。 target=zoom_upload 很奇怪,不明白是什么意思;
它的提交form的JS如下
function do_upload()
{
var nControls = document.zform_upload.boxes.value;//页面中form的个数
var nFiles = 0;
for(i=1; i<=nControls; i++)
{
var upform = parent.document.getElementById("zupload_form_"+i);
if(upform)
{
if(upform.img_file.value.length != 0)
{
  nFiles++;
}
}
if(nFiles > 0)
{
document.zform_upload.submit();
return false;
}
}
问题的关键是怎样提交form?

解决方案 »

  1.   

    zoom_upload 也许是个文件吧
      

  2.   

    <body>里有个<FORM id=zform_upload name=zform_upload 
    action=http://www.vendio.com/my/ihost/uploadimage.html method=post 
    target=zoom_upload encType=multipart/form-data><INPUT type=hidden 
    value=http://www.vendio.com/my/ihost/upload_redirect.html? name=redirect_url> 
    <INPUT type=hidden value=15 name=boxes> <INPUT type=hidden value=0 
    name=zupload_index> </FORM>
    其他的全是那种循环输出的form
      

  3.   

    html看起来真让人烦躁啊。
    欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
    我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。
      

  4.   

    target=zoom_upload 由于楼主没有详细的代码,所以我猜测是这样:首先这个zoom_upload估计是一个框架名,当执行document.zform_upload.submit();SUBMIT的时候将页面提交到了这个框架里去做处理。这个的好处应该就是减少刷新量了。楼主以后问问题,最好将信息提供比较全。别人才好分析啊。
      

  5.   

    AJAX不能用于提交文件。一般有进度条的文件上传是这样做的:
    <input type="file" />,或者对应的服务器端控件,专门放在一个页面里,然后通过IFrame包含在领一个页面中。当然IFrame设计为无边缘,尽量让人感觉不到IFrame的存在。上传开始的时候,IFrame进行提交,文件的数据也就在上传了。同时主页面启动AJAX请求,询问服务器当前接受进度,将询问到的结果显示在当前页面上。如何询问?例如IFrame内外两个页面,可以保存一个GUID最为key。IFrame内提交文件时也用hidden把key提交上去,IFrame外页面在AJAX查询时使用该key询问服务器进度,服务器就凭key来判断哪个上传和查询是一起的。至于服务器如何实时获取上传进度,这需要到一个叫做HttpWorkerRequest的类,详细做法你搜索一下就知道了。通过HttpWorkerRequest来获取上传进度很人做过。
      

  6.   

    在一个隐藏框架内提交表单,很正常啊,以前我一直这样来实现现在AJAX实现的功能,而且AJAX不能上传文件,还是只有通过这种方法