mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-09-25 04:19:57 +08:00
52 lines
1.0 KiB
PHP
52 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace League\Flysystem\Adapter\Polyfill;
|
|
|
|
use League\Flysystem\Config;
|
|
|
|
trait StreamedCopyTrait
|
|
{
|
|
/**
|
|
* Copy a file.
|
|
*
|
|
* @param string $path
|
|
* @param string $newpath
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function copy($path, $newpath)
|
|
{
|
|
$response = $this->readStream($path);
|
|
|
|
if ($response === false || ! is_resource($response['stream'])) {
|
|
return false;
|
|
}
|
|
|
|
$result = $this->writeStream($newpath, $response['stream'], new Config());
|
|
|
|
if ($result !== false && is_resource($response['stream'])) {
|
|
fclose($response['stream']);
|
|
}
|
|
|
|
return $result !== false;
|
|
}
|
|
|
|
// Required abstract method
|
|
|
|
/**
|
|
* @param string $path
|
|
*
|
|
* @return resource
|
|
*/
|
|
abstract public function readStream($path);
|
|
|
|
/**
|
|
* @param string $path
|
|
* @param resource $resource
|
|
* @param Config $config
|
|
*
|
|
* @return resource
|
|
*/
|
|
abstract public function writeStream($path, $resource, Config $config);
|
|
}
|