使用 PHP 将 Dropbox 文件内容存储到变量中
Storing Dropbox file content into variable with PHP
我需要你的帮助,因为我被困住了,Google 没有提供任何解决方案。我正在尝试通过官方 Dropbox API 读取 .txt 文件的内容。到目前为止它正在工作,但它在我眼中并不漂亮。必须有一种简单的方法将文件内容直接存储到 array/string 变量中。
到目前为止我得到的是在网络服务器上使用临时文件的解决方法:
$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。
您可以在不使用 php://memory
stream:
实际写入文件的情况下执行此操作
$stream = fopen('php://memory', 'r+');
$dbxClient->getFile("/someFileOnDropbox.txt", $stream);
rewind($stream);
$fileContents = stream_get_contents($stream);
这并没有真正简化您的程序,但至少可以在不在服务器上写入任何实际文件的情况下完成。
您还可以扩展 Dropbox Client
class 来封装此功能:
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;
}
}
我需要你的帮助,因为我被困住了,Google 没有提供任何解决方案。我正在尝试通过官方 Dropbox API 读取 .txt 文件的内容。到目前为止它正在工作,但它在我眼中并不漂亮。必须有一种简单的方法将文件内容直接存储到 array/string 变量中。
到目前为止我得到的是在网络服务器上使用临时文件的解决方法:
$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。
您可以在不使用 php://memory
stream:
$stream = fopen('php://memory', 'r+');
$dbxClient->getFile("/someFileOnDropbox.txt", $stream);
rewind($stream);
$fileContents = stream_get_contents($stream);
这并没有真正简化您的程序,但至少可以在不在服务器上写入任何实际文件的情况下完成。
您还可以扩展 Dropbox Client
class 来封装此功能:
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;
}
}