js如何删除input节点内的files对象内指定文件?

新手上路,请多包涵

html:

利用input多图上传,选中多个图片后确认。

jquery:

在利用jquery获取input节点内的files对象的数据,比如获取到的files对象内有5张图片文件,
这个时候可做好多事情,比如图片预览等....
然而我发现第二张图片效果不好我不想上传了,然后我就进行了删除,然而我删除以后服务器还是收到了这张图片的数据,并进行的上传;
那么说明,我删除操作只是把预览图片的dom节点删除了,并没有将input节点内的files对象内的第二张图片文件删除。

问:?

那么我该如何删除?
jquery 或者 javascript 请给出示例代码!

阅读 5.2k
2 个回答

var fileEle = document.getElementById("file");

        var formData = new FormData();  
        for(var i in file.files){//这里如果单张上传就不必遍历直接formData.append('file',file.files[0])  
            formData.append('file',file.files[i]);  
        } 
        delete formData[0]//删除第一张,以此类推
        $.ajax({  
            url: '/upload',  
            type: 'POST',  
            data: formData,  
            cache: false,  
            contentType: false,  
            processData: false,  
            success: function(data){   
                //你的逻辑
            } 
        }); 

上面网友的回答也没有问题, 但是不是功能实现, 通过change抓取上传文件列表, 渲染到一个新的Dom列表上用来展示和控制待上传文件, 并把files的数组索引挂载到Dom列表上, 通过删除某个文件的Dom得到要删除的索引, 通过该索引对files做数组的同步删除操作, 即可实现指定删除待上传的文件.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题