我希望“client.js”读取文件,并使用HTTP POST通过“server.js”将其上传到某个文件夹。当文件大小很小(1kb)时,它可以工作。但是当文件大小更大(可能大约100kb)时,它无法正常工作。没有错误,但存储的图像尺寸小于它应该的尺寸。我不知道为什么。请帮忙。
1.client.js
var fs = require('fs');
var http = require('http');
postData = null;
postData=fs.readFileSync("test.jpg")
if(postData!=null){
var options = {
host: 'localhost',
port: 10730,
method: 'POST'
};
var clientRequest = http.request(options);
clientRequest.end(postData);}
2.server.js
var http = require('http');
var fs = require('fs');
var server = http.createServer((req,res)=>{
req.on('data', (chunk)=>{
fs.writeFile('testcopy.jpg',chunk)})
req.on('end', ()=>{
console.log("end")
})})
server.listen(10730,'localhost');
提前谢谢。
答案 0 :(得分:1)
您可以使用multer,一个处理multipart/form-data
的中间件,它会自动为您保存文件并填充req变量:
req.file //access file info
。它有很多功能可以抽象出这种工作。你可以定义文件的大小,过滤文件和许多其他设施,我知道multer很容易使用,并且可以使用express作为中间件,但我想你可以试试这个:
var http = require('http');
var server = http.createServer((req,res)=>{
upload(req, res, function (err) {
if (err) {
// An error occurred when uploading
return
}
console.log('end')
// Everything went fine
})
})
server.listen(10730,'localhost');