如何在Node.js中保存通过表单上传的文件

如何在Node.js中保存通过表单上传的文件,node.js,file,express,file-upload,Node.js,File,Express,File Upload,我正在通过Express.js构建一个web应用程序,我有一个上传文件的表单。我需要保存本地文件,我不知道如何实现这一点。我曾尝试在internet上搜索,但我只能找到fs.writeFile(),但这只适用于保存纯文本,所以如果例如是.pdf呢 这是我用来选择文件的: <input type="file" name="myFile"> 您可以使用multer(中间件),它用于解析formdata。使用它来保存文件和图像 阅读这篇文章您可以使用multer(一种中间件),它用于解析

我正在通过Express.js构建一个web应用程序,我有一个上传文件的表单。我需要保存本地文件,我不知道如何实现这一点。我曾尝试在internet上搜索,但我只能找到
fs.writeFile()
,但这只适用于保存纯文本,所以如果例如是.pdf呢

这是我用来选择文件的:

<input type="file" name="myFile">
您可以使用multer(中间件),它用于解析formdata。使用它来保存文件和图像 阅读这篇文章

您可以使用multer(一种中间件),它用于解析formdata。使用它来保存文件和图像
阅读这篇文章

您需要发送AJAX post请求,并在post正文中添加formdata,如

var formData = new FormData();
formData.append('name_you_catch_on_server', JSON.stringify(your_file));
然后使用ajax请求发布这些数据

$.ajax({
        url,
        method : 'POST',
        data:formData,
        processData: false,
        contentType: false,
        success: function(data) {
            return data
        },
        error: function (err) {
        }
    })

您需要发送AJAX post请求,并在post正文中添加formdata,如

var formData = new FormData();
formData.append('name_you_catch_on_server', JSON.stringify(your_file));
然后使用ajax请求发布这些数据

$.ajax({
        url,
        method : 'POST',
        data:formData,
        processData: false,
        contentType: false,
        success: function(data) {
            return data
        },
        error: function (err) {
        }
    })

Multer也支持多个上传,我个人总是使用Multer来做这样的事情Hanks:)我刚刚检查了一下,我有一个问题。我不使用
我已经知道如何在JQuery中执行
post
,我只是不知道在这种情况下是否可以通过post操作发送文件。@AdriánT95只要您的请求有效,您如何提交请求并不重要。确保您的请求enctype是
multipart/formdata
@Dijkstra我的意思是,我有三个文件
server.js
(Node.js主文件)、
userPage.ejs
(网站)和
javascript.js
(userPage.ejs的JQuery代码)。。。根据Multer文档,我必须做这样的事情:
upload.single('avatar')
,我可以在JQuery中做这样的帖子
$.post(“/profile”,function(data){})。如何将
upload.single('avatar')
发送到
server.js
,其中包含我正在使用的Node.js模块?Multer还支持多次上传,我个人总是使用Multer进行此类上传。谢谢:)我刚刚检查了它,我有一个问题。我不使用
我已经知道如何在JQuery中执行
post
,我只是不知道在这种情况下是否可以通过post操作发送文件。@AdriánT95只要您的请求有效,您如何提交请求并不重要。确保您的请求enctype是
multipart/formdata
@Dijkstra我的意思是,我有三个文件
server.js
(Node.js主文件)、
userPage.ejs
(网站)和
javascript.js
(userPage.ejs的JQuery代码)。。。根据Multer文档,我必须做这样的事情:
upload.single('avatar')
,我可以在JQuery中做这样的帖子
$.post(“/profile”,function(data){})。如何将
upload.single('avatar')
发送到
server.js
,其中包含我正在使用的Node.js模块?Nevermind,我要将其更改为
Nevermind,我要将其更改为