Извините за вопрос, не могу придумать, как это описать ..
По сути, используя несколько различных сценариев / учебных пособий, мне удалось получить работающую функцию перетаскивания и загрузки файлов вместе (для пользователей Firefox, Safari и Chrome).
Это работает очень хорошо, но у меня действительно простая, но сложная проблема с отображением имени файла и размера файла.
Вместо получения этого формата:
<tr>
<th>File Name</th><th>100kb</th>
</tr>
<tr>
<td>File 1</td><td>100kb</td>
</tr>
<tr>
<td>File 2</td><td>145kb</td>
</tr>
Я получаю это вместо:
<tr>
<th>File Name</th><th>100kb</th>
</tr>
<tr>
<td> </td><td> </td> ///// Annoying blank table row!!!
</tr>
<tr>
<td>File 1</td><td>100kb</td>
</tr>
<tr>
<td>File 2</td><td>145kb</td>
</tr>
Это происходит где-то в моем Javascript, я думаю, хотя я никогда раньше не использовал <TBODY>
, так может быть и это. Я прочитал документы, касающиеся <TBODY>
, и по умолчанию это НЕ должно влиять на расположение моей таблицы.
Это мой код:
<table width="100%" id="uploadInfoTbl">
<tr>
<th>File</th>
<th>Size</th>
</tr>
<tbody id="uploadQueue">
<tr class="uploadTemplate">
<td></td>
<td></td>
</tr>
</tbody>
</table>
<script>
createFileQueue : function(files)
{
$('tbody#uploadQueue').find('tr').not('.uploadTemplate').remove();
$(files).each(
function(key, file) {
var tr = $('tr.uploadTemplate').clone();
tr.removeClass('uploadTemplate');
tr.attr('id', 'file-' + key);
if (file.type.match(new RegExp('/image.*/')) && FileReader) {
// Displaying a thumbnail doesn't seem to work in Safari
var img = document.createElement('img');
img.file = value;
img.classList.add('thumbnail');
// tr.find('tr').eq(0).html(img);
var reader = new FileReader();
reader.onload = (function(img) {
return function(e) {
img.src = e.target.result;
};
})(img);
reader.readAsDataURL(value);
}
tr.find('td').eq(0).html(file.name);
tr.find('td').eq(1).html(dnd.getFileSize(file.size));
$('tbody#uploadQueue').append(tr);
}
);
},
</script>
Кто-нибудь может увидеть, что вызывает появление этого дополнительного <TR>
? Остальную часть моего сценария я понимаю и могу исправить, но я действительно пока не получаю этот новый HTML5 File API и как распечатать результаты из него.
Кроме того, кто-нибудь знает, как сбросить имена файлов и размеры файлов. Я спрашиваю, потому что после каждой загрузки я перетаскиваю больше файлов в свою зону размещения, и отображаются предыдущие выбранные файлы, а также новые, и продолжает собираться, пока я не обновлю браузер?
Большое спасибо заранее