我需要你的帮助,因为我被困住了,谷歌没有提供任何解决方案。我正在尝试通过官方Dropbox API读取.txt文件的内容。它到目前为止工作但它在我眼中并不漂亮。必须有一种简单的方法将文件内容直接存储到数组/字符串变量中。
到目前为止,我在网络服务器上找到了一个临时文件的解决方法:
$tempFile = fopen("tempOnWebserver.txt", "w+");
$fileMetadata = $dbxClient->getFile("/someFileOnDropbox.txt", $tempFile);
fclose($tempFile);
$fileContent = file_get_contents("tempOnWebserver.txt");
所以我只想写$dbxClient->getFile("/someFileOnDropbox.txt", $fileContent)
并跳过解决方法,但那是 - 当然 - 不可能(:有什么办法可以解决这个问题吗?
对于Dropbox getFile函数,请参阅http://dropbox.github.io/dropbox-sdk-php/api-docs/v1.1.x/class-Dropbox.Client.html#_getFile。
答案 0 :(得分:1)
您可以在不使用php://memory
stream:
$stream = fopen('php://memory', 'r+');
$dbxClient->getFile("/someFileOnDropbox.txt", $stream);
rewind($stream);
$fileContents = stream_get_contents($stream);
这并不能简化你的程序,但至少可以在你的服务器上不写任何实际文件的情况下完成。
您还可以扩展Dropbox Client
类以封装此功能:
class YourClient extends \Dropbox\Client
{
public function getFileContents($filename)
{
$stream = fopen('php://memory', 'r+');
$this->getFile("/someFileOnDropbox.txt", $stream);
rewind($stream);
$fileContents = stream_get_contents($stream);
fclose($stream);
return $fileContents;
}
}