首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过网络传输文件

通过网络传输文件
EN

Stack Overflow用户
提问于 2015-08-14 03:48:11
回答 2查看 62关注 0票数 0

我正在网络上传输一个文件(图像),从pc到android。服务器代码是:

代码语言:javascript
复制
int offset = 0;
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(requested));
byte[] temp = new byte[300];
int len;
while((len = bis.read(temp)) > 0){
    byte[] data;
    if(len == temp.length){
        data = temp;
    }
    else{
        data = new byte[len];
        System.arraycopy(temp, 0, data, 0, len);
    }
    writer.println(Base64.encode(data));
}
bis.close();

而接收它的客户端( android):

代码语言:javascript
复制
byte[] bytes = Base64.decode(input, Base64.NO_WRAP);
fos.write(bytes, 0, bytes.length);

( fos变量是带有文件输出流的缓冲输出流)

文件到达,大小与发送的文件相同,然而,当文件在android上打开时,图像应用程序会显示一个黑色的屏幕。

编辑:所有.GIF似乎都打开了精细的

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-14 04:33:14

因为发送文件夹会发送多个文件,所以当一个新文件开始发送时,上一个文件的输入流被关闭以打开新文件的输入流,但是下载的最终文件的输入流从未关闭。

票数 0
EN

Stack Overflow用户

发布于 2015-08-14 04:09:02

我认为代码正在发送端执行多个base64编码,在接收端执行一个解码。

这是值得确保只有一个编码发生在完整的文件,同时发送。只有一个解码发生在接收端。

稍后,您可以尝试使用N个编码和N个解码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32001976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档