在android和nosejs之间通过套接字发送文件

我试图build立一个应用程序之间的android客户端和节点js服务器之间传输文件。 我设法从android客户端发送一个图像,但我想用节点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

这些应该是工作(我没有testing代码)。