繁体   English   中英

如何在Node.js中上传和显示文件?

[英]How to upload and display a file in Node.js?

我是Node的新手,在上传文件时遇到了一些问题。 我正在尝试以文本/纯文本格式上载图像(jpg和png)和文本文件,然后在后路由中显示它们(“ /上载”)。 我已经尝试过兼而有之,但无法正确解决。 非常感谢您的帮助。

我尝试了所有不同类型的事件和回调,但是缺少一些关键步骤。 这是html:

<!DOCTYPE html>
  <html lang="en">
  <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial- 
     scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <title>Testform</title>
 </head>
 <body>
   <form method="post" enctype="multipart/form-data" 
    action="/upload">
     <div>
       <input type="file" name="file" size="35">
     </div>
     <button type="submit" value="Click me" name="submit-btn">Click me</button>
   </form>
   </body>
</html>   

这是服务器代码:

const formidable = require('formidable')
const express = require('express')
const path = require('path') 

const app = express()

app.get('/', (req, res) => {
   res.sendFile(path.resolve('views', 'index.html'))
})

app.post('/upload', (req, res) => {

  const form = new formidable.IncomingForm()

  form.uploadDir = __dirname + '/uploads/'

  form.parse(req)

  form.on('fileBegin', (name, file) => {
    file.path = form.uploadDir + file.name
    res.write(`<img src="./uploads/${file.name}">`)
    res.end()
  })
 })

 app.listen(3000)

我的根文件夹包含app.js,views / index.html和一个名为uploads的目录。

该代码是我用于图像上传的测试用例。 当我运行程序时,具有正确名称和内容的文件将被上载到目录“ ./uploads”中。 但是,我在发帖请求('/ upload')的响应中看不到上载的图像。 如果有人可以帮助我以及其他文本文件(文本/纯文本),那就太好了。 干杯!

在请求的响应中,您可以发送值,所以类似res.end(value here)的东西可以工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM