我需要通过SOAP服务以基本格式发送文件。我无法在本地保存文件。有没有办法转换上传的文件,并在一个实例中发送,而不保存它?从上传文件创建Base64而不保存在本地php
我最初以为是那么容易,因为:
$base64file = base64_encode($_FILES["cv"]["tmp_name"]);
但是,这似乎并没有被伟大的工作。
我需要通过SOAP服务以基本格式发送文件。我无法在本地保存文件。有没有办法转换上传的文件,并在一个实例中发送,而不保存它?从上传文件创建Base64而不保存在本地php
我最初以为是那么容易,因为:
$base64file = base64_encode($_FILES["cv"]["tmp_name"]);
但是,这似乎并没有被伟大的工作。
你的代码的问题是你编码的是文件名,而不是文件内容。
使用此打开的文件,并将其转换为Base64:
$base64file = base64_encode(file_get_contents($_FILES["cv"]["tmp_name"]));
然后你就可以将其发送回客户端。只需再次检查Soap服务器是否将base64编码为字符串的两倍。
这总是返回一个空字符串。为了接收我的文件的内容,还有什么我可能需要做的? –
我简单的调试是转储文件名'$ _FILES [“cv”] [“tmp_name”]'并查看它是否存在于服务器文件系统中。另一个信息来源是$ _FILES [“cv”] [“error”] value(请参阅http://php.net/manual/en/features.file-upload.errors.php以供参考) – giosh94mhz
,显然联系表7(WP)不允许你在挂钩中使用file_get_contents。我把它放在函数的范围之外,它完美地工作。所以基本上你的回答是正确的。 ;) –
什么不适合你的例子? – SyntaxLAMP