1
我想发送附件中的多个文件。我可以选择多个文件作为附件,但是当我想删除任何附加文件时,我无法做到这一点,当我上传新附件时,只有新附件发送邮件而不是我第一次附加的其他文件。我如何更新和删除附件?如何在将文件发送到服务器之前删除文件?
<div>
<div class="col-sm-8">
<div class="fileupload fileupload-exists upload-btn" data-provides="fileupload">
<input type="hidden" value="" name="">
<span class="btn btn-file btn-light-grey">
<i class="fa fa-folder-open-o"></i>
<span class="fileupload-exists">Select file(s)</span>
<input type="file" name="task_files[]" class="file_handler file_index myFile" data-id="1" onchange="dostuff(this);" multiple="multiple">
</span>
</div>
</div>
<input type="hidden" name="unsetKeys" class="unsetKeys">
</div>
脚本
var unset_indexes = [];
function dostuff(input) {
var output = '';
var validOutput = '<br />Valid Files:<br />';
var validFiles = [];
var obj = $(input);
id = obj.attr('data-id');
for(var i = 0; i < input.files.length; i++) {
var ext = (input.files[i].name).split('.').pop();
validFiles.push(input.files[i]);
validOutput += input.files[i].name;
output += "<div class='row'><div class='col-sm-9 file_index_"+i+"'>"+input.files[i].name+ "</div><div class='col-sm-3'><a data-id="+id+" class='removefile btn btn-xs btn-danger' file-index='"+i+"'>X</a></div></div>";
}
//output += validOutput;
$('#outputfiles').append(output);
//document.getElementById('output_'+id).innerHTML = output;
}
$(document).on('click','.removefile',function(){
id = $(this).attr('data-id');
var fileObj = $(".file_index_"+id);
console.log(fileObj);
unset_indexes.push({"id":id, "val":$(this).attr('file-index')});
var needToRemoveIndex = fileObj[0]['files'][$(this).attr('file-index')];
console.log(needToRemoveIndex);
console.log(unset_indexes);
unsetKeys = JSON.stringify(unset_indexes);
$('.unsetKeys').val(unsetKeys);
delete needToRemoveIndex;
$(this).parent().parent().slideUp('slow', function(){$(this).remove();});
});
你知道使用unlink .. ??? – Nikunj
在将文件上传到服务器之前是否要删除文件? – Endless