2011-10-12 70 views
1

我需要以PHP的Byte []形式將文件的內容發佈到網頁(C#)。我試過使用cURLstream_context_create(),但是我認爲它歸結爲我如何讀出文件。將文件內容作爲Byte []從PHP應用程序發佈到.NET ASP

我的帖子內容/ CURLOPT_POSTFIELDS樣子:

$data .= "\r\n--" . $boundary . "\r\n"; 
$data .= "Content-Disposition: form-data; name=\"file\"; filename=\"" . $files['name'][$id] . "\"\r\n"; 
$data .= "Content-Type: application/octet-stream\r\n\r\n"; 
$data .= file_get_contents($files['tmp_name'][$id]) . "\r\n"; 
$data .= "--" . $boundary . "--\r\n"; 

但是,這是行不通的。

Post byte array from PHP to .NET WCF Servicefile_get_contents()是兼容的 - 但我沒有找到任何證據。

http://bytes.com/topic/php/answers/869014-how-convert-gif-file-byte-array-thanks聲明這是不可能的。 (沒有什麼是不可能的!)

我也使用fread()fopen()file()

PS的變化試過我知道web服務在C有點相同的腳本工作的罰款++/Java的等工作正常。 file.readAll()是唯一的區別file_get_contents()行是...

感謝任何意見或解決我的悲哀的答案!

回答

1

file_get_contents()是兼容的。它會根據你的問題返回你正在尋找的文件內容的二進制字符串。只是爲了澄清這個前沿。

我假設你有一個錯誤else,或者你在錯誤的上下文中使用那些數據。哪裏不清楚你的問題給我。

但是我在代碼中看到的是,你不做任何錯誤檢查和處理。

將PHP的錯誤處理設置爲PHP配置和日誌錯誤的最高級別。然後監視錯誤日誌。

同時檢查文件上傳過程中的錯誤,the PHP Manual has a complete entry about how it works含。錯誤處理文件上傳。

+0

我傾向於同意,錯誤很可能會在我的結束。我確實有一些關於這個地方的嘗試,以及一個標準的if($ err === UPLOAD_ERR_OK)'。表單肯定會發布到服務器,並且內容長度與我上傳的文件大小一致。我會盡量加大了錯誤處理(據我所知它已經刷爆了),但是.. – amcc

+0

至少在'file_get_contents'行我看不出有任何錯誤檢查,其他注意事項僅僅是因爲它在某種程度上常見的人往往忘記小費。 – hakre

+0

我把它的簡單性的目的,我的例子^ – amcc

相關問題