如何处理字节流数组

时间:2021-05-23 20:57:25
最近遇到一个烦心的问题,就是将附件以字节流数组的形式进行传递,但不知道应该怎么做了。
现在要传递一个附件到另一个服务器上,并且要将附件通过字节流数组的形式进行传递,网上搜索了N长时间,找不到关于PHP处理字节流的例子,还希望大家多帮帮忙。
我提供一个Java的例子,这是Java中处理附件字节流的程序。

String a="d://tmp.jpg";
File fa=new File(a);
FileInputStream fis = new FileInputStream(fa);
byte[] tmp = new byte[fis.available()];


其中最后变量“tmp”就是最后需要的字节流数组,各位,帮帮忙,救命啊!

18 个解决方案

#1


该回复于2009-06-07 00:43:07被版主删除

#2


$src=fopen('d://tmp.jpg','r');
$tobyte=fopen('d://tmp.txt','w');
stream_copy_to_stream($src, $tobyte, 1024); 

這樣d://tmp.txt保存的是d://tmp.jpg字節流,隨你怎麼操作

另:建議看下PHP的Stream Function


#3


谢谢,不过请教一下,如何将字节流向JAVA中的生成一个byte[]的数组呢。

#4


你可以遍曆字節流文件保存到數組中
PHP操作數據比較簡單

#5


丿 

#6


还是不理解,麻烦详解一下。

#7


up一下!

#8


或者哪位可以帮忙把上面的JAVA代码翻译成PHP表示。

#9


引用 3 楼 joymeng 的回复:
谢谢,不过请教一下,如何将字节流向JAVA中的生成一个byte[]的数组呢。

php中没有byte。

处理2进制数据直接用混合型或者resource形势,
用php传送2进制数据肯定是没问题,关键看你服务器接口是什么。

#10


服务器的接口是通过webserver进行传递的。

#11


引用 10 楼 joymeng 的回复:
服务器的接口是通过webserver进行传递的。

简单的方法:
 lz可以用php调用curl命令向服务器发送文件


更灵活的应用:
 lz可以使用Zend_Http,发送http客户信息,更适合习惯于OOP开发思想的。但是需要理解很多基本的概念。
 http://framework.zend.com/manual/ja/zend.http.html

#12


这个我也有查过,还在学习中。

刚刚又和接口提供商那边进行联系了,他给的意见就是将附件通过字节数组进行传递。
PHP中有对字节数组进行处理的函数吗,或者是一个类型。

#13


引用 12 楼 joymeng 的回复:
这个我也有查过,还在学习中。

刚刚又和接口提供商那边进行联系了,他给的意见就是将附件通过字节数组进行传递。
PHP中有对字节数组进行处理的函数吗,或者是一个类型。

你理解http协议吗?
知道http协议中如何传输文件吗?

#14


怎么都喜欢用这种语气回答呢,搞不懂,如果理解的话,就不会在这里提问了,让我干着急一个。
我希望大家能帮帮我,帮我解决下问题,就十分感谢了,小弟才疏学浅,需要学习的地方很多。

我已经了解了将附件处理成字节流的形式了,现在需要知道的是,如果将这些字节流形成数组形式。

#15


引用 14 楼 joymeng 的回复:
怎么都喜欢用这种语气回答呢,搞不懂,如果理解的话,就不会在这里提问了,让我干着急一个。
我希望大家能帮帮我,帮我解决下问题,就十分感谢了,小弟才疏学浅,需要学习的地方很多。

我已经了解了将附件处理成字节流的形式了,现在需要知道的是,如果将这些字节流形成数组形式。


那只能建议lz先熟悉一下提问的思考方法了。

之所以如此问你是因为你的“接口提供商”给了你一个可说可不说的“解释”(废话)
而从你的提问中,对这句“废话”体现的“似懂非懂”。
所以我想引导给你理解此问题的本质,同时引导你找到解决此类问题的根本解决方法。

既然对“废话”情有独钟,我也只好沉默。

#16


从哪里看出来我对什么所谓的废话情有独钟呢,我对接口提供商回答是及其不满意的。
不错,我是不了解这一块,我需要解决,当然需要大家的帮助,需要大家让我了解这一块,如果一直这样下去,我永远都搞不动这一块。
貌似是你们懂了,就开始嘲笑一些不懂这块的人。

技术是分享的,而不是独享的,如果你喜欢独自一个人享受,那我也说不了什么。楼上的。

我很愿意把我知道的,用最直接最明了的方式共享给那些需要的人,而不是在这兜圈子。

#17


1. 上 google
2. 一种方法不行,换另一种
3. 可以考虑用序列化传递

#18


我也遇到此问题,共同学习一下

#1


该回复于2009-06-07 00:43:07被版主删除

#2


$src=fopen('d://tmp.jpg','r');
$tobyte=fopen('d://tmp.txt','w');
stream_copy_to_stream($src, $tobyte, 1024); 

這樣d://tmp.txt保存的是d://tmp.jpg字節流,隨你怎麼操作

另:建議看下PHP的Stream Function


#3


谢谢,不过请教一下,如何将字节流向JAVA中的生成一个byte[]的数组呢。

#4


你可以遍曆字節流文件保存到數組中
PHP操作數據比較簡單

#5


丿 

#6


还是不理解,麻烦详解一下。

#7


up一下!

#8


或者哪位可以帮忙把上面的JAVA代码翻译成PHP表示。

#9


引用 3 楼 joymeng 的回复:
谢谢,不过请教一下,如何将字节流向JAVA中的生成一个byte[]的数组呢。

php中没有byte。

处理2进制数据直接用混合型或者resource形势,
用php传送2进制数据肯定是没问题,关键看你服务器接口是什么。

#10


服务器的接口是通过webserver进行传递的。

#11


引用 10 楼 joymeng 的回复:
服务器的接口是通过webserver进行传递的。

简单的方法:
 lz可以用php调用curl命令向服务器发送文件


更灵活的应用:
 lz可以使用Zend_Http,发送http客户信息,更适合习惯于OOP开发思想的。但是需要理解很多基本的概念。
 http://framework.zend.com/manual/ja/zend.http.html

#12


这个我也有查过,还在学习中。

刚刚又和接口提供商那边进行联系了,他给的意见就是将附件通过字节数组进行传递。
PHP中有对字节数组进行处理的函数吗,或者是一个类型。

#13


引用 12 楼 joymeng 的回复:
这个我也有查过,还在学习中。

刚刚又和接口提供商那边进行联系了,他给的意见就是将附件通过字节数组进行传递。
PHP中有对字节数组进行处理的函数吗,或者是一个类型。

你理解http协议吗?
知道http协议中如何传输文件吗?

#14


怎么都喜欢用这种语气回答呢,搞不懂,如果理解的话,就不会在这里提问了,让我干着急一个。
我希望大家能帮帮我,帮我解决下问题,就十分感谢了,小弟才疏学浅,需要学习的地方很多。

我已经了解了将附件处理成字节流的形式了,现在需要知道的是,如果将这些字节流形成数组形式。

#15


引用 14 楼 joymeng 的回复:
怎么都喜欢用这种语气回答呢,搞不懂,如果理解的话,就不会在这里提问了,让我干着急一个。
我希望大家能帮帮我,帮我解决下问题,就十分感谢了,小弟才疏学浅,需要学习的地方很多。

我已经了解了将附件处理成字节流的形式了,现在需要知道的是,如果将这些字节流形成数组形式。


那只能建议lz先熟悉一下提问的思考方法了。

之所以如此问你是因为你的“接口提供商”给了你一个可说可不说的“解释”(废话)
而从你的提问中,对这句“废话”体现的“似懂非懂”。
所以我想引导给你理解此问题的本质,同时引导你找到解决此类问题的根本解决方法。

既然对“废话”情有独钟,我也只好沉默。

#16


从哪里看出来我对什么所谓的废话情有独钟呢,我对接口提供商回答是及其不满意的。
不错,我是不了解这一块,我需要解决,当然需要大家的帮助,需要大家让我了解这一块,如果一直这样下去,我永远都搞不动这一块。
貌似是你们懂了,就开始嘲笑一些不懂这块的人。

技术是分享的,而不是独享的,如果你喜欢独自一个人享受,那我也说不了什么。楼上的。

我很愿意把我知道的,用最直接最明了的方式共享给那些需要的人,而不是在这兜圈子。

#17


1. 上 google
2. 一种方法不行,换另一种
3. 可以考虑用序列化传递

#18


我也遇到此问题,共同学习一下