2015-11-02 114 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。我把它放在函数的范围之外,它完美地工作。所以基本上你的回答是正确的。 ;) –

相关问题