#javascript #html
Вопрос:
У меня есть этот код
HTML
<input type="file" accept=".docx" type="file" id="fileUpload" onchange="setFile()" />
Язык JavaScript
const setFile = () => { console.log(document.getElementById('fileUpload').files[0])}
И я пытаюсь заставить выбранный файл отображаться в консоли, но безрезультатно. Пожалуйста, как я могу это исправить?
Вот ссылка на песочницу https://codesandbox.io/embed/fancy-river-9dn69?codemirror=1
Комментарии:
1. что вы хотите, чтобы было отображено? это из-за названия?
2. Имя файла и другие его свойства
3. Ваш код отображает информацию на консоли.
4. @Gass он не отображается
Ответ №1:
Просто укажите свойство name, и вы получите то, что ищете.
const setFile = () => {
console.log(document.getElementById('fileUpload').files[0].name)
}
<input type="file" accept=".docx" type="file" id="fileUpload" onchange="setFile()" />
Другие свойства, такие как LastModified, LastModifiedDate, тип и другие, также доступны на нем, поэтому просто обратитесь к тем, которые вы хотите отобразить.
Комментарии:
1. К сожалению, я получаю тот же результат. В консоли ничего не отображается
Ответ №2:
«SetFile ()» рассматривается как строка ,а не вызов функции , поэтому для вызова SetFile () вам нужно вызвать его , поэтому используйте onChange={setFile()}
, если вы работаете в react
const setFile = () => {
console.log(document.getElementById('fileUpload').files[0].name)
}
<input type="file" accept=".docx" type="file" id="fileUpload" onchange={setFile()} />
Комментарии:
1. Это просто html и javascript
Ответ №3:
Ваш код действительно извлекает информацию из объектного файла. Здесь вы можете увидеть, что было визуализировано внутри <body>
const setFile = () => {
const fileObject = document.getElementById('fileUpload').files[0];
document.getElementById('title').style.display = 'block';
document.getElementById('one').append('Name: ' fileObject.name)
document.getElementById('two').append('Last Modified: ' fileObject.lastModified)
document.getElementById('three').append('Last Modified Date: ' fileObject.lastModifiedDate)
document.getElementById('four').append('Size: ' fileObject.size)
document.getElementById('five').append('Type: ' fileObject.type)
}
div{margin:10px 0}
<input type="file" accept=".docx" type="file" id="fileUpload" onchange="setFile()" />
<h1 id="title" style="display:none">File Info</h1>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
<div id="four"></div>
<div id="five"></div>
Комментарии:
1. Все еще не отображается
Ответ №4:
Использование тега метки вместо тега кнопки для запуска ввода файла помогло решить проблему. Хотя я не могу понять, почему.