pdf文件上传工具js

本文介绍了在不依赖jQuery的项目中,如何使用Zepto等轻量级框架实现PDF文件的上传。通过XMLHttpRequest和FileReader进行文件的base64编码,使用FormData封装数据,并提供前端JS代码示例。同时,文章分享了使用SpringBoot后端接收文件时遇到的问题及解决办法,包括MultipartFile类型的转换、配置问题以及文件存储位置的调整。
摘要由CSDN通过智能技术生成

原因

现在主流的上传工具大多需要依赖jQuery来使用,虽然功能强大,扩展性好

但是有时候吧,项目中可能不需要那么强大的功能及扩展性,仅仅只需要简单的上传一个文件就可以了

对于用zepto等非jQuery框架的项目来说,很多的上传组件用不了,于是我就自己写了一个简易的文件上传脚本

代码

首先说下方法参数,file是需要上传的文件所在的input标签,type=file肯定是需要的

再说下原理,我是直接利用XMLHttpRequest来发送请求的,文件由FileReader进行base64编码,数据由FormData封装

最后上代码,代码中会有注释

function uploadFile(file){
	var files = file.files;
	var len = files.length; //多文件上传时会用到
	var reader = new FileReader();  //读取文件用的
	reader.onload = function(evt) {  //这个onload方法相当于是readAsDataURL方法执行后的回调,异步的,毕竟文件编码也是要时间的
	    // 添加参数
	    var formData = new FormData();  //formData的用法网上有说明
	    formData.append('file', files[0],files[0].name);  这里的第三个参数是用来指定文件的名字,我这里用的是文件本身的名字
            formData.append('size', files[0].size);
            formData.append('base64
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将HTML网页字符串转换为PDF文件,您可以使用一些现成的工具或库,如Puppeteer、wkhtmltopdfpdfkit等。 下面是一个使用Puppeteer将HTML网页字符串转换为PDF文件的示例代码: ```javascript const puppeteer = require('puppeteer'); const fs = require('fs'); (async () => { // Launch a new browser instance const browser = await puppeteer.launch(); // Create a new page const page = await browser.newPage(); // Set the HTML content of the page const htmlContent = "<html><body><h1>Hello, World!</h1></body></html>"; await page.setContent(htmlContent); // Generate the PDF file const pdfBuffer = await page.pdf({ format: 'A4' }); // Save the PDF file to disk fs.writeFile('example.pdf', pdfBuffer, (err) => { if (err) throw err; console.log('PDF file saved to disk!'); }); // Close the browser instance await browser.close(); })(); ``` 要将生成的PDF文件上传到服务器,您可以使用Node.js文件上传模块,如multer或formidable等。 下面是一个使用multer将PDF文件上传到服务器的示例代码: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { console.log(req.file); // File information res.send('File uploaded successfully!'); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在上面的示例中,我们使用multer模块将上传文件保存在服务器上的`uploads/`目录中,并在控制台输出了文件的信息。您可以根据自己的需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值