2011-07-20 21 views
0

我需要編寫一個代碼,它可以上傳doc文件並以二進制或ASCII作爲API變量發送其內容。我可以想到兩種方法(1)上傳文件,然後讀取其內容並將數據發送到api(2)上傳文件,然後存儲其內容並訪問blob數據併發送到api。將上傳的文件轉換爲binary/ascii並作爲api變量發送

我想問問哪一個更好。現在我正在使用第二個選項。

現在我的問題是我能夠做上傳部分和存儲到數據庫部分作爲blob數據, ,但是當我使用mysql查詢訪問blob數據並將結果發送到API。 API說它不是二進制或ASCII。而當我回應查詢的結果顯示亂碼數據,所以我認爲它不是在二進制或ASCII。請告訴我如何將這個blob數據作爲Binary/ASCII傳遞給API。

<?php 

$filename = "resume3.doc"; 
$handle = fopen($filename, "rb"); 
$contents = fread($handle, filesize($filename)); 
fclose($handle); 

// URL of Form 
$url = "http://rezscore.com/a/2901e8/grade"; 
//create the final string to be posted 
$post_string = "resume=$contents"; 

//create cURL connection 
$curl_connection = curl_init($url); 

//set options 
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($curl_connection, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); 
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

//set data to be posted 
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string); 

//perform our request 
$result = curl_exec($curl_connection); 

print $result; 

//close the connection 
curl_close($curl_connection);  
?> 

該文件應該是一個簡歷,並且api返回簡歷的成績。 http://rezscore.com/

感謝

回答

0

你可以用直接的方式沒有MySQL的。只需將文件上傳到某個臨時目錄,然後使用http://php.net/fread即可對其內容進行二進制安全讀取。

+0

謝謝。 fread沒有解決這個問題,這就是爲什麼我切換到數據庫選項 – Vicky

+0

** fread()**是二進制安全的並返回文件內容。也許下一次處理是不正確的。 – silex

+0

請看看問題中的代碼。我沒有收到任何錯誤,但是不管簡歷如何,總是F(這不是簡歷) – Vicky