Nodejs 通过Java提交文件并保存到本地的例子?
Nodejs 通过Java提交文件并保存到本地的例子?
通过Java提交文件到Nodejs,Nodejs获取文件保存到本地?求一例子。 没什么特殊要求。 只需要把代码详细贴出并且有注释即可!
要在Node.js中接收通过Java上传的文件,并将其保存到本地服务器,可以使用multer
中间件来处理文件上传。下面是一个详细的步骤说明和示例代码。
示例代码
首先确保你已经安装了必要的依赖包:
npm install express multer
Java客户端代码(用于上传文件)
假设你有一个简单的Java客户端代码片段,使用HTTP POST请求将文件发送到Node.js服务器:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class FileUploader {
public static void main(String[] args) throws IOException {
String fileLocation = "/path/to/your/file.txt";
String serverUrl = "http://localhost:3000/upload";
URL url = new URL(serverUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/octet-stream");
try (FileInputStream fis = new FileInputStream(new File(fileLocation));
OutputStream os = connection.getOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
}
int responseCode = connection.getResponseCode();
System.out.println("Response Code : " + responseCode);
}
}
Node.js服务器端代码
接下来是Node.js服务器端代码,它使用Express和Multer来处理文件上传:
const express = require('express');
const multer = require('multer');
// 设置存储引擎
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, 'uploads/') // 指定文件存储路径
},
filename: function(req, file, cb) {
cb(null, file.originalname) // 保持原始文件名
}
});
const upload = multer({ storage });
const app = express();
// 创建上传目录
const fs = require('fs');
if (!fs.existsSync('uploads')) {
fs.mkdirSync('uploads');
}
// 设置路由处理文件上传
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded successfully!');
});
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
解释
-
Java客户端:我们创建了一个简单的Java程序,该程序读取一个文件并将文件内容作为二进制数据发送到指定的Node.js服务器。
-
Node.js服务器:服务器使用Express框架接收文件上传。Multer中间件被用来解析和存储上传的文件到指定的目录(在这个例子中是
uploads/
)。服务器监听端口3000,并响应文件上传成功的信息。
确保在运行Java客户端之前启动Node.js服务器。这将使Java客户端能够连接到服务器并上传文件。
這個事情用nodejs做不好吧。。。。。
nodejs服务器地址: 192.168.0.100:8000. nodejs服务器保存文件的路由: /file/upload,使用fs将req.body中的内容保存到本地即可。
只需要java代码向http://192.168.0.100:8000/file/upload 发送http post请求即可。