原生input上传多个文件不显示数字
时间: 2024-02-21 19:02:02 浏览: 19
这可能是因为你没有设置input元素的multiple属性。在HTML中,multiple属性指示输入字段可以选择多个值。如果你上传多个文件时没有设置multiple属性,浏览器可能会无法正确显示上传的文件数量。因此,你应该确保在input元素中设置multiple属性,例如:
```
<input type="file" name="files[]" multiple>
```
这样,当你选择多个文件时,浏览器会正确显示上传的文件数量。
相关问题
原生js input file文件上传
好的,以下是一个简单的原生 JavaScript 实现文件上传的示例:
HTML 代码:
```html
<input type="file" id="inputFile">
<button onclick="uploadFile()">上传文件</button>
```
JavaScript 代码:
```javascript
function uploadFile() {
// 获取 input 元素
const inputFile = document.getElementById('inputFile');
// 获取文件对象
const file = inputFile.files[0];
// 创建 FormData 对象
const formData = new FormData();
// 将文件对象添加到 FormData 中
formData.append('file', file);
// 创建 XMLHttpRequest 对象
const xhr = new XMLHttpRequest();
// 设置请求方式和 URL
xhr.open('POST', '/upload');
// 发送请求
xhr.send(formData);
// 监听请求状态变化事件
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 请求成功
console.log(xhr.responseText);
}
};
}
```
以上代码实现了文件上传的基本功能,但是并没有处理上传失败、进度条等问题。如果需要更完整的实现,需要参考相关文档进行开发。
用原生js写一个文件上传
HTML代码:
```html
<input type="file" id="fileInput">
<button id="uploadBtn">上传文件</button>
```
JS代码:
```javascript
const fileInput = document.getElementById('fileInput');
const uploadBtn = document.getElementById('uploadBtn');
uploadBtn.addEventListener('click', () => {
const file = fileInput.files[0];
const formData = new FormData();
formData.append('file', file);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/upload');
xhr.send(formData);
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
console.log('上传成功');
} else {
console.error('上传失败');
}
}
}
});
```
以上代码监听了上传按钮的点击事件,获取文件输入框中的文件,使用FormData构建表单数据,使用XMLHttpRequest发送POST请求,最后根据请求状态判断上传成功或失败。注意,上传的URL需要根据实际情况修改。