前端本地文件上传预览 (拖拽,表格上传的三种方法)

系列文章目录

Tips:我又来写文章了!!!
背景:跟同事讨论,前端向后端发送文件的具体交互。突然想到了一个业务场景(下面按照上传图片并在前端预览为例子说明)
1.如何选择文件
2.如何获取到上传的文件info
3.如何把文件进行转化
4.如何展示图片



补充

提示:可以看👇的内容(感觉没懂)

1.文件预览&&文件拖拽

1.文件预览&&文件拖拽
2.表单数据上传(三种方法)

2.表单数据上传(三种方法)


提示:以下是本篇文章正文内容,下面案例可供参考

一、如何实现上传文件?

1.使用标签 input:

  <input type="file" />

2.效果图:

在这里插入图片描述

二、获取到上传的文件info

1.获取Dom节点

代码如下:

 var file = document.getElementsByTagName("input")[0];

2.绑定事件

代码如下:

 file.onchange = function (event) {
      //   console.log(event.target.files[0]);

      //读取我们本地上传的文件
      var readFile = new FileReader();
      //文件处理方法
      readFile.onload = function (eve) {
        // console.log(eve.target.result);
        //创建 img 标签
        let img = document.createElement("img");
        //设置图片的src属性
        img.setAttribute("src", `${eve.target.result}`);
        //在指定的标签中添加
        document.body.appendChild(img);
      };
      
      readFile.readAsDataURL(event.target.files[0]);
    };

说明图如下:

在这里插入图片描述


in show & 🔗

以上步骤已经对我们的需求,上传文件并预览进行了实现,如果想要去实现长传至服务器,请点击下面👇链接

1.文件预览&&文件拖拽
2.表单数据上传(三种方法)


  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
由于doc文件是二进制格式,需要转换成HTML格式才能在前端进行预览。以下是一种可能的实现方式: 1. 安装依赖 使用`npm install mammoth`安装mammoth库,该库可以将docx和doc文件转换成HTML格式。 2. 上传文件 用户上传doc文件后,可以使用`FileReader`对象读取文件内容,并将其转换成二进制格式。 ```javascript const fileInput = document.getElementById('file-input'); fileInput.addEventListener('change', (event) => { const file = event.target.files[0]; const reader = new FileReader(); reader.readAsArrayBuffer(file); reader.onload = () => { const arrayBuffer = reader.result; // 将arrayBuffer发送到后端进行转换 } }) ``` 3. 后端转换 将二进制数据发送到后端,后端使用mammoth库将doc文件转换成HTML格式,并返回给前端。 ```javascript const mammoth = require('mammoth'); const express = require('express'); const app = express(); app.post('/convert', (req, res) => { const buffer = req.body; // 二进制数据 mammoth.convertToHtml({ arrayBuffer: buffer }) .then(result => { const html = result.value; res.send(html); }) .catch(error => { console.error(error); res.status(500).send('Error converting file'); }); }) ``` 4. 前端显示 前端接收到HTML格式的文件内容后,可以使用`innerHTML`属性将其显示在页面上。 ```javascript const previewDiv = document.getElementById('preview-div'); previewDiv.innerHTML = html; ``` 注意:由于doc文件可能包含JavaScript代码和外部资源,将其转换成HTML格式后存在一定的安全风险,需要进行安全性检查。另外,由于不同版本的Word软件可能生成的doc文件格式不同,转换成HTML格式的结果可能不完全一致,需要进行兼容性测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满脑子技术的前端工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值