PHP API 将多个文件上传到 Dropbox
Mulitiple Files upload to Dropbox by PHP API
我尝试使用 Dropbox PHP Api 上传文件。它工作得很好。 Dropbox api 中是否有用于多个文件上传的选项。或 php 中是否存在任何异步上传概念? .目前我正在使用 oauth2.0 进行应用程序登录。
/**
* Uploads a physical file from disk
* Dropbox impose a 150MB limit to files uploaded via the API. If the file
* exceeds this limit or does not exist, an Exception will be thrown
* @param string $file Absolute path to the file to be uploaded
* @param string|bool $filename The destination filename of the uploaded file
* @param string $path Path to upload the file to, relative to root
* @param boolean $overwrite Should the file be overwritten? (Default: true)
* @return object stdClass
*/
public function putFile($file, $filename = false, $path = '', $overwrite = true)
{
if (file_exists($file)) {
if (filesize($file) <= 157286400) {
$call = 'files/' . $this->root . '/' . $this->encodePath($path);
// If no filename is provided we'll use the original filename
$filename = (is_string($filename)) ? $filename : basename($file);
$params = array(
'filename' => $filename,
'file' => '@' . str_replace('\', '/', $file) . ';filename=' . $filename,
'overwrite' => (int) $overwrite,
);
return $this->fetch('POST', self::CONTENT_URL, $call, $params);
}
throw new Exception('File exceeds 150MB upload limit');
}
// Throw an Exception if the file does not exist
throw new Exception('Local file ' . $file . ' does not exist');
}
我正在使用这个脚本
Dropbox API 目前不提供任何批量或批处理上传,但我们将此作为功能请求进行跟踪。
在这种情况下,如果您想以异步方式 运行 这段代码,您可以通过 运行 在另一个线程的后台运行它来实现。还有其他帖子涵盖了这一点,例如:
- php execute a background process
- How To Run PHP Code In The Background on unix server
- Running PHP Code in the background with paramaters
我尝试使用 Dropbox PHP Api 上传文件。它工作得很好。 Dropbox api 中是否有用于多个文件上传的选项。或 php 中是否存在任何异步上传概念? .目前我正在使用 oauth2.0 进行应用程序登录。
/**
* Uploads a physical file from disk
* Dropbox impose a 150MB limit to files uploaded via the API. If the file
* exceeds this limit or does not exist, an Exception will be thrown
* @param string $file Absolute path to the file to be uploaded
* @param string|bool $filename The destination filename of the uploaded file
* @param string $path Path to upload the file to, relative to root
* @param boolean $overwrite Should the file be overwritten? (Default: true)
* @return object stdClass
*/
public function putFile($file, $filename = false, $path = '', $overwrite = true)
{
if (file_exists($file)) {
if (filesize($file) <= 157286400) {
$call = 'files/' . $this->root . '/' . $this->encodePath($path);
// If no filename is provided we'll use the original filename
$filename = (is_string($filename)) ? $filename : basename($file);
$params = array(
'filename' => $filename,
'file' => '@' . str_replace('\', '/', $file) . ';filename=' . $filename,
'overwrite' => (int) $overwrite,
);
return $this->fetch('POST', self::CONTENT_URL, $call, $params);
}
throw new Exception('File exceeds 150MB upload limit');
}
// Throw an Exception if the file does not exist
throw new Exception('Local file ' . $file . ' does not exist');
}
我正在使用这个脚本
Dropbox API 目前不提供任何批量或批处理上传,但我们将此作为功能请求进行跟踪。
在这种情况下,如果您想以异步方式 运行 这段代码,您可以通过 运行 在另一个线程的后台运行它来实现。还有其他帖子涵盖了这一点,例如:
- php execute a background process
- How To Run PHP Code In The Background on unix server
- Running PHP Code in the background with paramaters