元素,设置accept属性限制为.doc,.docx格式:
当前位置:首页 > JavaScript

js实现word上传

2026-03-01 15:03:27JavaScript

使用input元素实现文件选择

在HTML中创建一个<input type="file">元素,设置accept属性限制为.doc,.docx格式:

<input type="file" id="wordUpload" accept=".doc,.docx" />

监听文件选择事件

通过JavaScript监听change事件获取用户选择的Word文件:

document.getElementById('wordUpload').addEventListener('change', function(event) {
    const file = event.target.files[0];
    if (!file) return;

    console.log('Selected file:', file.name, file.type, file.size);
});

使用FileReader读取文件内容

将Word文件读取为ArrayBuffer或二进制字符串:

const reader = new FileReader();
reader.onload = function(e) {
    const arrayBuffer = e.target.result;
    // 处理文件内容
};
reader.readAsArrayBuffer(file);

使用第三方库解析Word文档

安装docx或mammoth等库进行文档解析:

npm install docx

使用docx库解析.docx文件:

import { Document } from 'docx';
const docx = require('docx');

reader.onload = async function(e) {
    const arrayBuffer = e.target.result;
    const doc = await Document.load(arrayBuffer);
    console.log(doc.paragraphs);
};

实现文件上传到服务器

使用FormData对象和fetch API上传文件:

const formData = new FormData();
formData.append('wordFile', file);

fetch('/upload', {
    method: 'POST',
    body: formData
})
.then(response => response.json())
.then(data => console.log('Upload success:', data))
.catch(error => console.error('Upload error:', error));

添加拖放上传功能

实现拖放区域和事件处理:

<div id="dropZone">拖放Word文件到这里</div>
const dropZone = document.getElementById('dropZone');
dropZone.addEventListener('dragover', (e) => {
    e.preventDefault();
    dropZone.classList.add('dragover');
});

dropZone.addEventListener('drop', (e) => {
    e.preventDefault();
    dropZone.classList.remove('dragover');
    const file = e.dataTransfer.files[0];
    // 处理拖放的文件
});

显示上传进度

使用XMLHttpRequest显示上传进度:

const xhr = new XMLHttpRequest();
xhr.upload.onprogress = function(e) {
    const percent = Math.round((e.loaded / e.total) * 100);
    console.log(`Upload progress: ${percent}%`);
};
xhr.open('POST', '/upload', true);
xhr.send(formData);

客户端验证

在上传前验证文件类型和大小:

js实现word上传

if (!file.name.match(/\.(doc|docx)$/i)) {
    alert('请上传Word文档');
    return;
}

if (file.size > 10 * 1024 * 1024) { // 10MB限制
    alert('文件大小超过限制');
    return;
}

标签: 上传js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现变形

js实现变形

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

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…