gpt4 book ai didi

javascript - 通过socket在android和nosejs之间发送文件

转载 作者:行者123 更新时间:2023-11-30 01:27:03 24 4
gpt4 key购买 nike

我正在尝试构建一个应用程序以在 android 客户端和 Node js 服务器之间传输文件。我设法从 android 客户端发送图像,但我想通过 Node js 服务器接收它。我试过这个:

socket.on("image", function (image) {
console.log(" image réçu : " +image)
});

但它对我不起作用。我应该如何解决这个问题。

最佳答案

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);
});

});

服务器 -> Android

服务器:

fs.readFile("/img/your_img_in_server.jpeg", function(err, data){

var img64 = new Buffer(data, 'binary').toString('base64')
socket.emit("send_img", img64)

})

安卓:

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();

FS API:https://nodejs.org/api/fs.html https://github.com/socketio/socket.io-client-java

这些应该可以工作(我没有测试代码)。

关于javascript - 通过socket在android和nosejs之间发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com