用不着去花这个脑筋的,用脚本触发的type=file,你会发现这种做法根本不能上传文件,不信你自己可试试

解决方案 »

  1.   

    在sohu的邮箱附件上传功能,不知道是这样做的不了,这个是书上的例子,我也没有做成功了,而我是用了另外的思路解决的:
    先上传文件或是图片到服务器上,然后在listbox显示上传文件名的列表,如果删除的话,就点击listbox上的一项(就是文件名),在从服务器上删除他,这样在服务器上操作不是很好了,但是没有办法,为了实现功能,我也只能这样办了不知道大家有什么多文件上传的好办法了
      

  2.   

    我试了下可以上传啊,我用的PHP,难道其他语言下是不行的?<form action="http://localhost:8080/test.php" enctype="multipart/form-data" method="post">
    <div id="container">
    </div>
    <input type="button" onclick="process(document.getElementById('container'))" value="Test" />
    <input type="submit" name="submit" value="submit it!"/>
    </form>
    <script language="javascript">
    function process(obj)
    {
    var newFileInput=document.createElement("input");
    newFileInput.setAttribute("type","file");
    newFileInput.name="upload";
    obj.appendChild(newFileInput);
    }
    </script>
      

  3.   

    如果在每上传一张图片的时候,对图片进行预览,因为这个按钮是动态生成的,在里面添加onclick事件,但是没有响应了,也许是那里c错了,还是不懂诶
      

  4.   

    用attachEvent试试...<form action="http://localhost:8080/test.php" enctype="multipart/form-data" method="post">
    <div id="container">
    </div>
    <input type="button" onclick="process(document.getElementById('container'))" value="Test" />
    <input type="submit" name="submit" value="submit it!"/>
    <br />
    <img id="previewImage" src="" /> 
    </form>
    <script language="javascript">
    var newInputsNumber=0;function process(obj)
    {
    var newFileInput=document.createElement("input");
    var newButton=document.createElement("input");
    newFileInput.type="file";
    newFileInput.name="upload"+newInputsNumber;
    newFileInput.id="upload"+newInputsNumber;
    newButton.type="button";
    newButton.name="preview"+newInputsNumber;
    newButton.value="Preview";
    newButton.attachEvent("onclick",showPicture)
    obj.appendChild(newFileInput);
    obj.appendChild(newButton);
    newInputsNumber++;
    }function showPicture()
    {
    var inputName="upload"+event.srcElement.name.replace(/preview/i,"");
    var obj=document.getElementById(inputName);
    var img=document.getElementById("previewImage"); if(obj.value!="")
    img.src=obj.value;
    }
    </script>