2015-11-02 118 views
0

我需要通過SOAP服務以基本格式發送文件。我無法在本地保存文件。有沒有辦法轉換上傳的文件,並在一個實例中發送,而不保存它?從上傳文件創建Base64而不保存在本地php

我最初以爲是那麼容易,因爲:

$base64file = base64_encode($_FILES["cv"]["tmp_name"]); 

但是,這似乎並沒有被偉大的工作。

+1

什麼不適合你的例子? – SyntaxLAMP

回答

1

你的代碼的問題是你編碼的是文件名,而不是文件內容。

使用此打開的文件,並將其轉換爲Base64:

$base64file = base64_encode(file_get_contents($_FILES["cv"]["tmp_name"])); 

然後你就可以將其發送回客戶端。只需再次檢查Soap服務器是否將base64編碼爲字符串的兩倍。

+0

這總是返回一個空字符串。爲了接收我的文件的內容,還有什麼我可能需要做的? –

+0

我簡單的調試是轉儲文件名'$ _FILES [「cv」] [「tmp_name」]'並查看它是否存在於服務器文件系統中。另一個信息來源是$ _FILES [「cv」] [「error」] value(請參閱http://php.net/manual/en/features.file-upload.errors.php以供參考) – giosh94mhz

+0

,顯然聯繫表7(WP)不允許你在掛鉤中使用file_get_contents。我把它放在函數的範圍之外,它完美地工作。所以基本上你的回答是正確的。 ;) –

相關問題