7

我必须将图片发送到网络服务。Web 服务应该将图像作为字节(可能是字节数组)接收 - 而不是作为字符串......如何将图像转换为“字节”或字节数组?

我试过这个(没有成功):

$image1 = file_get_contents("LINK TO IMAGE");
$image1BinaryData = "".base64_encode($image1)."";

任何帮助将不胜感激...

4

3 回答 3

9

Have you tried to directly read the image as binary data?

<?php
$filename = "image.png";
$file = fopen($filename, "rb");
$contents = fread($file, filesize($filename));
fclose($file);
?>
于 2012-05-21T14:41:57.810 回答
3

这是等效于 C# 和 Java 中生成的实际字节数组。

$data = file_get_contents("test.jpg");

$array = array(); 
foreach(str_split($data) as $char){ 
    array_push($array, ord($char)); 
}
var_dump(implode(' ', $array));
于 2012-07-12T12:07:24.057 回答
0

一个 php 字符串是二进制的,所以它已经是字节。

摆脱 base64_encode() 并使用 urlencode() 或 rawurlencode()

于 2012-05-21T14:38:25.980 回答