2012-05-21 10 views
6

के साथ बाइट में कनवर्ट करें मुझे एक webservice पर एक तस्वीर भेजनी है। वेब सेवा को छवि को बाइट्स (माई बाइटियर) के रूप में प्राप्त करना चाहिए - एक स्ट्रिंग के रूप में नहीं ... मैं छवियों को "बाइट" या बाइटियर में कैसे परिवर्तित करूं?छवि को बाइट

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

किसी भी मदद की सराहना की होगी ...

+0

file_get_contents के साथ इसे पढ़ना बाइट्स की एक सरणी वापस कर देना चाहिए, नहीं? या यह विशेष रूप से एक स्ट्रिंग वापस करता है? यदि ऐसा होता है, तो fopen, fread, और fclose –

+0

का उपयोग करें http://stackoverflow.com/questions/885597/string-to-byte-array-in-php –

उत्तर

6

आप सीधे बाइनरी डेटा के रूप में छवि को पढ़ने के लिए कोशिश की है का उपयोग हो सकते हैं?

<?php 
$filename = "image.png"; 
$file = fopen($filename, "rb"); 
$contents = fread($file, filesize($filename)); 
fclose($file); 
?> 
+1

यह file_get_contents() करता है। – goat

+0

मैं नया हूं, इसलिए कृपया धैर्य रखें :) यदि मैं इस एक्सपेम्पेल का उपयोग करता हूं, तो बाइट्स को किस चरबी को पकड़ते हैं? – fletcher

+1

यह समाधान काम करता है: '$ हैंडल = फॉपेन (" छवि को लिंक करें "," आरबी "); $ सामग्री = stream_get_contents ($ हैंडल); fclose ($ हैंडल); ' – fletcher

0

एक php स्ट्रिंग बाइनरी है, इसलिए यह पहले से ही बाइट में बताया गया है:

मैं (उत्तराधिकारी) के बिना यह कोशिश की है।

() base64_encode से छुटकारा और urlencode() या rawurlencode()

+0

इस तरह पढ़ें? $ image1 = file_get_contents ("test.jpg"); $ image1BinaryData = urlencode ($ image1); – fletcher

+0

शायद। निर्भर करता है कि आप इसे webservice पर कैसे भेजते हैं। आपको urlencode() की आवश्यकता नहीं हो सकती है। – goat

1

यह वास्तविक बाइट सरणी सी # और जावा में उत्पन्न होने वाली चीज़ के बराबर है।

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

$array = array(); 
foreach(str_split($data) as $char){ 
    array_push($array, ord($char)); 
} 
var_dump(implode(' ', $array)); 
संबंधित मुद्दे