я бы вот это:
td2.innerHTML="<input name='file[]' size='20' type='file' class='input2' onchange='add_file(true);false;'/>";
написал бы тоже через createElement - так правильнее
потом ещё:
var d = document.getElementById('fileDiv');
получается ты добавляешь диву элемент TR? Поидее он будет правильным только для TABLE
add_file(true);false;
зачем приписка false в конце?