首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法使用nodejs和ejs显示上传到我的文件中的pdf?

是的,您可以使用Node.js和EJS来显示上传到您的文件中的PDF。下面是一个简单的示例代码:

  1. 首先,确保您已经安装了Node.js和EJS。
  2. 创建一个名为app.js的Node.js文件,并在其中添加以下代码:
代码语言:txt
复制
const express = require('express');
const multer = require('multer');
const path = require('path');
const ejs = require('ejs');

// 设置存储引擎
const storage = multer.diskStorage({
  destination: './uploads',
  filename: function(req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
  }
});

// 初始化上传
const upload = multer({
  storage: storage,
  limits: { fileSize: 1000000 } // 限制文件大小为1MB
}).single('pdfFile');

// 初始化Express应用
const app = express();

// 设置EJS模板引擎
app.set('view engine', 'ejs');

// 设置静态文件夹
app.use(express.static('./public'));

// 处理文件上传
app.post('/upload', (req, res) => {
  upload(req, res, (err) => {
    if (err) {
      console.log(err);
      res.render('index', { msg: err });
    } else {
      if (req.file == undefined) {
        res.render('index', { msg: '请选择要上传的文件' });
      } else {
        res.render('index', { msg: '文件上传成功', file: `uploads/${req.file.filename}` });
      }
    }
  });
});

// 渲染首页
app.get('/', (req, res) => {
  res.render('index');
});

// 启动服务器
const port = 3000;
app.listen(port, () => console.log(`服务器正在运行,端口号:${port}`));
  1. 创建一个名为index.ejs的EJS模板文件,并在其中添加以下代码:
代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>文件上传</title>
</head>
<body>
  <h1>文件上传</h1>
  <% if (msg) { %>
    <p><%= msg %></p>
  <% } %>
  <form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="pdfFile">
    <input type="submit" value="上传">
  </form>
  <% if (file) { %>
    <embed src="<%= file %>" width="500" height="375" type="application/pdf">
  <% } %>
</body>
</html>
  1. 创建一个名为uploads的文件夹,用于存储上传的PDF文件。
  2. 在命令行中进入项目目录,并运行node app.js启动服务器。
  3. 在浏览器中访问http://localhost:3000,您将看到一个文件上传表单。选择一个PDF文件并点击上传按钮。
  4. 上传成功后,页面将显示上传成功的消息,并显示PDF文件。

这样,您就可以使用Node.js和EJS来显示上传到您的文件中的PDF了。请注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券