有一个上传图片的网页,但每次只能上传一张图片。我想通过脚本或者什么方式自动上传一大堆图,我该用什么样的方式?(语言最好是java吧,脚本的话随便了)下面是网页的截图和源代码,超级简单的页面。
网页截图先来个:
========>源代码放到下面的二楼吧!谢谢大家!!!javascriptweb脚本java

解决方案 »

  1.   

    二楼放个源代码,顺便占个楼,哈哈谁叫人气这么低呢:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <script src="/jquery.js" type="text/javascript"></script>
    <title>照片保险柜 - Wifi传输</title>
    <style>
      * {padding:0;margin:0;}
    body {margin:0;font: normal 12px Arial, Verdana, Tahoma; color:#333;background: #F0F0F0 url("bg.png") 50% 0 fixed repeat;}
    #main {width:800px;margin:0 auto;}
                #info {font:italic bold 12px/20px arial,sans-serif;}
    #header{background: transparent url(titlebg.png) repeat-x;border-top: 1px solid #dcdcdc;height:100px;}
    form.upload {margin-left:12px;padding-left:48px;padding-top:8px;margin-top:40px;height:32px;}
    table {width:100%;padding:0;border-bottom: 1px solid #fff;}
    thead {margin:0;padding:0;}
    th {height:15px;text-align: left;padding-left:20px;border-left:1px solid #999;border-bottom:1px solid #999;color:#303;font-size:.9em;font-weight: normal;background: transparent url(theadbg.png) repeat-x;}
    td.del, th.del {width:8em;}
    tbody td {padding-left:20px;background-color:#fff;height:20px;border-bottom: 1px solid #ccc;}
    tr.shadow td{background-color:#ecf3fe;}
    a.file {text-decoration:none;color:#333;}
    #footer {height:80px;border-top:1px solid #ccc;margin:0 auto;position:absolute;bottom:0px;width:800px;text-align: center;}
    #footer .content {border-top: 1px solid #fff;}
    .mydiv{ 
    HEIGHT: 650px; border:#909090 1px solid;background:#fff;color:#333; 
    filter:progid:DXImageTransform.Microsoft.Shadow(color=#909090,direction=120,strength=4);/*ie*/ 
    -moz-box-shadow: 2px 2px 10px #909090;/*firefox*/ 
    -webkit-box-shadow: 2px 2px 10px #909090;/*safari或chrome*/ 
    box-shadow:2px 2px 10px #909090;/*opera或ie9*/ 

    .div1{
    width:65%;position:relative;  BORDER-LEFT: #000000 1PX DASHED; BORDER-RIGHT: #000000 1PX DASHED; BORDER-TOP: #000000 1PX DASHED; BORDER-BOTTOM: #000000 1PX DASHED
     ;margin-left:50px;margin-right:auto;
     }
    </style>
    <script type="text/javascript">
    function checkFileName(){

    var filepath = document.getElementById("newfile").value; 
    if(filepath==''){
     alert("请选择文件");
     return false;
    }
    var re = /(\\+)/g; 
    var filename=filepath.replace(re,"#"); 
    var one=filename.split("#"); 
    var two=one[one.length-1];
    var three=two.split(".");
    var last=three[three.length-1]; 
    var tp ="mp4,mov,m4v,png,jpg,MP4,MOV,M4V,PNG,JPG";
    var rs=tp.indexOf(last);

    if(rs>=0){
     return true;
     }else{
     alert("请选择有效文件!");
     return false;
      }
      return false;
    }
    </script>
    </head> <body>
    <div id='main' class="mydiv">
    <div id='header'  >
    <form action="/files" enctype="multipart/form-data" method="post" class='upload' onSubmit="return checkFileName();">
    <label>选择照片或视频:</label>
    <input id="newfile" name="newfile" size="40" type="file" />
    <input name="commit" type="submit" value="Upload" class='button'  />
    </form>
    </div>
         
     <div id='info' class="div1"  >
            视频格式为 mp4、mov、m4v. 照片格式为:png、jpg.<br/>
                联系方式:<br/>
                Email: [email protected] <br/>
                博客 : http://cococai.blogcn.com <br/>
                新浪微博: http://weibo.com/2198540112 <br/>
            </div>

    <script type="text/javascript" charset="utf-8">
    var now = new Date();
    $.getJSON("/files?"+ now.toString(),
    function(data){
      var shadow = false;
      $.each(data, function(i,item){
        var trclass='';
        if (shadow)
          trclass= " class='shadow'";
    encodeName = encodeURI(item.name).replace("'", "&apos;");
      $("<tr" + trclass + "><td><a href='/files/" + encodeName + "' class='file'>" + item.name + "</a></td>" + "<td class='del'><form action='/files/" + encodeName + "' method='post'><input name='_method' value='delete' type='hidden'/><input name=\"commit\" type=\"submit\" value=\"Delete\" class='button' /></td>" + "</tr>").appendTo("#filelist");
        shadow = !shadow;
      });
    });
    </script>
    <div id="footer" class="mydiv">
      <div class='content'>
      <br/><br/>Copyright (c) 2011 coco Cai
      </div>
    </div>
    </div>    
    </body></html>
      

  2.   

    可以使用falsh上传,支持一次选择多个文件;高版本浏览器file框也能支持多选文件自动
    自动上传不符合web安全性要求,上传的文件必须是用户选择,无法用代码指定
      

  3.   


    这么说这个网页这么写的原因是因为web规范要求限制么? 不能通过代码来实现自动化了啊?
      

  4.   


    这么说这个网页这么写的原因是因为web规范要求限制么? 不能通过代码来实现自动化了啊?
    我说的是无法实现由代码指定文件
    这儿要的多文件选择和上传高版本浏览器的file框是支持的,要兼容的话也可以用flash上传
      

  5.   

    浏览器的file控件是不能指定文件路径,但通过API钩子就行了,下面是用 AAuto 写的一个示例
    import win.ui;
    import web.form;
    /*DSG{{*/
    var winform = win.form(parent=...; bottom=523;scroll=1;right=744;text="演示表单上传控件赋值";cls="DLG_WEB" )
    winform.add(  )
    /*}}*/
     
    var wb = web.form( winform ); //创建web窗体
    wb.html =/***
    <!DOCTYPE html >
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
    <title>演示表单上传控件赋值</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    </head><body>
    <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
      <label for="upload0"></label>
      <input type="file" name="upload0" id="upload0" />
    </form>
    <p>文件上传控件的值是只读的,不能修改.<br />
    这里使用AAuto中的raw.hookApi创建一个函数钩子,拦截网页对文件对话框的调用,<br />
    并直接返回我们预设的值即可。</p>
    </body>
    </html> 
    ***/ 
    winform.show() //显示窗体 
    wb.wait();//等待打开
      
    //导入函数钩子支持库
    import raw.apiHook;//声明钩子需要用到的结构体
    class OPENFILENAMEW{ 
       INT structSize;
       INT hwndOwner;
       pointer instance ;
       pointer filter;
       pointer customFilter;
       INT maxCustFilter;
       INT filterIndex;
       pointer file ;
       INT maxFile;
       pointer fileTitle;
       INT maxFileTitle;
       pointer initialDir;
       pointer title;
       INT flags;
       WORD fileOffset;
       WORD fileExtension;
       pointer defExt;
       pointer lCustData;
       pointer lpfnHook;
       pointer lpTemplateName;
       pointer pvReserved;
       INT dwReserved;
       INT flagsEx; 
    }   
     
    //安装API钩子
    hookGetOpenFileNameW = raw.apiHook("comdlg32.dll", "GetOpenFileNameW", "int(pointer)", 
    function (pfn) { 
         var oldofn = raw.convert(pfn ,OPENFILENAMEW() );
         path = ..string.toUnicode( io._exepath ); //注意必须是确实存在的路径
         ::CopyMemory(  oldofn.file,path,#path ); 
     
         winform.setTimeout(
             function(){
             //用完立即卸载钩子,但是这里必须用一个异步的延时函数,让钩子函数可以先返回再销毁
                 hookGetOpenFileNameW.unInstall();
             },1
         )    
         return 1;

    ).install();
     
    /** <INPUT class=text3 type=file name=upload0> **/
    var ele = wb.getEle("upload0")  
    ele.click()//进入消息循环
    win.loopMessage(); 不过如果是批量上传文件的话,不需要这么复杂,其实上传也就是一个简单的POST,用AAuto写个自动上传文件的示例:
    import inet.http;
    import web.uploadData;//创建测试文件
    string.save("/test.txt","测试文件" ,true)//创建上传数据
    var formdata = web.uploadData("username=用户名&password=密码","上传字段名","/test.txt")//自动上传文件
    var rp = inet.http().post("http://test.aau.cn/aauto/test/post/"
        , formdata.data ,formdata.header );io.open()
    io.print( rp )
      

  6.   

    嗯,谢谢大家了。web这方面我懂得太少了,不过基本思路有了哈哈============================
    等两天再结贴吧,能集思广益@_@!
      

  7.   

    可以用三方插件? 试试uploadify