我正在尝试构建一个在android客户端和node js服务器之间传输文件的应用程序。我设法从android客户端发送了一个图像,但我希望通过node js服务器接收它。我试过了:
socket.on("image", function (image) {
console.log(" image réçu : " +image)
});
但它对我不起作用。我该如何解决这个问题呢?
发布于 2016-03-30 08:14:35
安卓->服务器
Android:
File file = new File("/path/image.jpeg");
try {
FileInputStream fis = new FileInputStream(file);
byte imgByte[] = new byte[(int) file.length()];
fis.read(imgByte);
//convert byte array to base64 string
String img64 = Base64.encodeBase64URLSafeString(imgByte);
//send img64 to socket.io servr
} catch (Exception e) {
//
}
服务器:
socket.on("image", function (image) {
console.log(" image réçu : " +image)
//use fs.writeFile
image = image.replace(/^data:image\/png;base64,/, "");
require("fs").writeFile("out.png", image, 'base64',function(err) {
console.log(err);
});
});
服务器->安卓
服务器:
fs.readFile("/img/your_img_in_server.jpeg", function(err, data){
var img64 = new Buffer(data, 'binary').toString('base64')
socket.emit("send_img", img64)
})
Android:
socket = IO.socket("http://localhost");
socket.on("send_img", new Emitter.Listener() {
@Override
public void call(Object... args) {
String data = (String) args[0];
byte[] b = Base64.decode(data,Base64.DEFAULT);
//your bitmap data
Bitmap bmp = BitmapFactory.decodeByteArray(b,0,b.length);
}
});
socket.connect();
文件系统接口:https://nodejs.org/api/fs.html https://github.com/socketio/socket.io-client-java
这些应该是工作的(我没有测试代码)。
https://stackoverflow.com/questions/36301979
复制相似问题