Python 从POST请求节点提取文件

Python 从POST请求节点提取文件,python,node.js,rest,file,Python,Node.js,Rest,File,我第一次尝试nodejs。我将它与pythonshell一起使用。我正在尝试使用Post请求将文件从一台电脑传输到另一台电脑 app.js(服务器PC) python文件从(客户端PC)发送文件 我使用fiddler,请求似乎包含客户端PC上的文件,但我似乎无法在服务器PC上获取该文件。如何提取和保存该文件?是因为我缺少标题吗?我应该用什么?谢谢我将根据问题中的语法猜测并说您使用的是Express。Express不附带开箱即用的文件上传支持 您可以使用或中间件软件包添加多部分上载支持 这实际上很

我第一次尝试nodejs。我将它与pythonshell一起使用。我正在尝试使用Post请求将文件从一台电脑传输到另一台电脑

app.js(服务器PC)

python文件从(客户端PC)发送文件


我使用fiddler,请求似乎包含客户端PC上的文件,但我似乎无法在服务器PC上获取该文件。如何提取和保存该文件?是因为我缺少标题吗?我应该用什么?谢谢

我将根据问题中的语法猜测并说您使用的是Express。Express不附带开箱即用的文件上传支持

您可以使用或中间件软件包添加
多部分
上载支持

这实际上很容易做到,这是multer的一个示例

const express = require('express')
const bodyParser = require('body-parser')
const multer = require('multer')

const server = express()
const port = process.env.PORT || 1337

// Create a multer upload directory called 'tmp' within your __dirname
const upload = multer({dest: 'tmp'})

server.use(bodyParser.json())
server.use(bodyParser.urlencoded({extended: true}))

// For this route, use the upload.array() middleware function to 
// parse the multipart upload and add the files to a req.files array
server.port('/mytestapp', upload.array('files') (req, res) => {
    // req.files will now contain an array of files uploaded 
    console.log(req.files)
})

server.listen(port, () => {
    console.log(`Listening on ${port}`)
})

谢谢但是从客户端PC(python脚本),什么代码会上传文件?@golu这和你问的关于如何将上传的文件处理到Nodejs服务器的问题不一样吗?是的,可能是这样。那么我需要一个不同的问题吗?我也被困在这一部分。@golu,我想说的是,如何使用Python通过HTTP POST请求发送文件与如何在Node.js中处理它的服务器端非常不同。请在这里回答以下问题:。我收到了与multer相关的错误
f = open(filePath, 'rb')
try:
    response = requests.post(serverURL, data={'command':'savefile'}, files={os.path.basename(filePath): f})
const express = require('express')
const bodyParser = require('body-parser')
const multer = require('multer')

const server = express()
const port = process.env.PORT || 1337

// Create a multer upload directory called 'tmp' within your __dirname
const upload = multer({dest: 'tmp'})

server.use(bodyParser.json())
server.use(bodyParser.urlencoded({extended: true}))

// For this route, use the upload.array() middleware function to 
// parse the multipart upload and add the files to a req.files array
server.port('/mytestapp', upload.array('files') (req, res) => {
    // req.files will now contain an array of files uploaded 
    console.log(req.files)
})

server.listen(port, () => {
    console.log(`Listening on ${port}`)
})