首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎样实现逐个上传文件?该如何处理

2012-02-05 
怎样实现逐个上传文件?现有一个table如下数据-------------------------------------------文件名类型大小

怎样实现逐个上传文件?
现有一个table如下数据
-------------------------------------------
文件名                   类型         大小(MB)                 操作提示
-------------------------------------------
d:\A.jpg             图片           0.32                           删除
d:\B.wmv             视频           5.63                           删除
d:\C.txt             文本           0.02                           删除
d:\D.wmv             视频           60.02                         删除
-------------------------------------------
                                                                <批量上传>

需要实现如下效果,逐个上传
-------------------------------------------
文件名                   类型         大小(MB)                 操作提示
-------------------------------------------
d:\A.jpg             图片           0.32                           成功
d:\B.wmv             视频           5.63                           ....               (正在上传)
d:\C.txt             文本           0.02                           删除
d:\D.wmv             视频           60.02                         删除
-------------------------------------------
                                                                  <批量上传>

实现逐个上传,如上图,要求必须 '图片A '上传成功/失败后,方可继续下一个文件的上传;现在遇到不知要如何实现逐个上传?
代码如下javascript,(代码可以实现文件上传,就是无法逐个地上传,并做出提示?):
var   iRes=0;
function   Upfile(){
        var   leng=filesTable.rows.length;
        var   file,name;
//遍历table中的所有文件
      for(var   i=0;i <leng;i++){
file=   filesTable.rows[i].cells[0].innerText;        
filesTable.rows[i].cells[3].innerText= "... ";
//alert( 'iRes=   '+iRes);      
if(iRes==0){
ajaxMethod( '/fileAction.do?method=UpFiles&file= '+file+ '&name= '+name+ '&tr= '+i,batchUpFiles);
iRes=-1;
            }
      }
}

function   batchUpFiles(){
    if(xmlHttp.readyState   ==   4){


          if(xmlHttp.status   ==   200){
//           alert(xmlHttp.responseText);
                var   result=xmlHttp.responseXML.getElementsByTagName( "result ")[0].firstChild.data;
                var   trs=xmlHttp.responseXML.getElementsByTagName( "trs ")[0].firstChild.data;
var   j=parseInt(trs);
//alert(trs);
iRes=result;
//alert( 'ajax-iRes=   '+iRes);
filesTable.rows[j].cells[3].innerText= "成功 ";      

}
else{
      alert( 'error:   '+xmlHttp.statusText+ '         '+xmlHttp.status);
}
        }
}

function   ajaxMethod(url,callback){
      if(window.ActiveXObject)
              xmlHttp   =   new   ActiveXObject( "Microsoft.XMLHTTP ");
else   if(window.XMLHttpRequest)
xmlHttp   =   new   XMLHttpRequest();
if(xmlHttp){
                      xmlHttp.open( "POST ",url,true);
xmlHttp.setRequestHeader( "CONTENT-TYPE ",   "application/x-www-form-urlencoded ");
xmlHttp.onreadystatechange   =   callback;
xmlHttp.send(null);
}
}


[解决办法]
介意定义四个函数,每个函数实现一个上传,成功则继续,失败返回
[解决办法]
一个文件一个form,逐个提交试试
[解决办法]
"介意定义四个函数 "

可能是四个么?!

dom做一个表格,可以增添/删除项目(就是文件实体)
批量上传时,计算表格行数(上传量)

定制一个Ajax上传函数,点击 "批量上传 "触发,Ajax返回确认消息,判断消息回调上传函数,直到到达上传量时,退出回调

var c=0;
function upload()
{
if(c> table.length)return false;
ajax();
c++;
}
function ajax()
{
//发送到服务器
//回调ajax_callback();
}
function ajax_callback(data)
{
//if(data)//判断消息.
{
upload();
}
}

热点排行
Bad Request.