实现文件上传 HTML 提供原生文件上传控件,通过 实现:
当前位置:首页 > JavaScript

js 实现input file

2026-04-04 03:34:21JavaScript

使用 <input type="file"> 实现文件上传

HTML 提供原生文件上传控件,通过 <input type="file"> 实现:

<input type="file" id="fileInput" />

监听文件选择事件

通过 change 事件获取用户选择的文件:

document.getElementById('fileInput').addEventListener('change', function(event) {
  const files = event.target.files;
  console.log(files); // FileList 对象
});

处理多文件选择

添加 multiple 属性允许选择多个文件:

<input type="file" id="fileInput" multiple />

限制文件类型

通过 accept 属性限制可上传的文件类型:

js 实现input file

<!-- 只允许图片 -->
<input type="file" accept="image/*" />

<!-- 指定具体格式 -->
<input type="file" accept=".pdf,.doc,.docx" />

读取文件内容

使用 FileReader API 读取文件内容:

const reader = new FileReader();
reader.onload = function(e) {
  console.log(e.target.result); // 文件内容
};
reader.readAsText(files[0]); // 以文本形式读取

显示文件预览

对于图片文件,可以生成预览:

js 实现input file

const reader = new FileReader();
reader.onload = function(e) {
  const img = document.createElement('img');
  img.src = e.target.result;
  document.body.appendChild(img);
};
reader.readAsDataURL(files[0]);

上传文件到服务器

使用 FormDatafetch 上传文件:

const formData = new FormData();
formData.append('file', files[0]);

fetch('/upload', {
  method: 'POST',
  body: formData
}).then(response => {
  console.log('上传成功');
});

自定义样式

原生文件输入框样式受限,可通过以下方式自定义:

<label class="custom-file-upload">
  <input type="file" />
  选择文件
</label>
.custom-file-upload {
  border: 1px solid #ccc;
  display: inline-block;
  padding: 6px 12px;
  cursor: pointer;
}
input[type="file"] {
  display: none;
}

文件验证

在客户端验证文件大小和类型:

const file = files[0];
if (file.size > 5 * 1024 * 1024) {
  alert('文件大小不能超过5MB');
  return;
}

if (!file.type.match('image.*')) {
  alert('请选择图片文件');
  return;
}

标签: jsinput
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…