我试图将文件从一个位置复制到另一个位置。我确定位置是正确的,但我仍然在标题中收到错误。
这里有一些代码:
$oDirectory = new \RecursiveDirectoryIterator($extractFolder.'/res');
$oIterator = new \RecursiveIteratorIterator($oDirectory);
foreach($oIterator as $oFile) {
if ($oFile->getFilename() == 'icon.png') {
$icons[filesize($oFile->getPath().'/icon.png')] = $oFile->getPath().'/icon.png';
}
}
asort($icons);
print_r($icons);
$icon_source = end($icons);
echo $icon_source;
$generated_icon_file = str_slug($packagename.$version).'.png';
Storage::copy($icon_source, $generated_icon_file);
print_r
返回(表示文件存在):
Array ( [19950] => /var/www/apk.land/storage/extracted_apks/res/drawable-xxhdpi-v4/icon.png [31791] => /var/www/apk.land/storage/extracted_apks/res/drawable-xxxhdpi-v4/icon.png [6979] => /var/www/apk.land/storage/extracted_apks/res/drawable-hdpi-v4/icon.png [10954] => /var/www/apk.land/storage/extracted_apks/res/drawable-xhdpi-v4/icon.png )
echo返回:
/var/www/apk.land/storage/extracted_apks/res/drawable-xxxhdpi-v4/icon.png
确切的错误是:
路径中找不到档案: 无功/网络/ apk.land /存储/ extracted_apks / RES /抽拉-xxxhdpi-V4 /的icon.png
P.S。 PHP的copy
功能效果很好。
我无法在这里找到问题。
有什么建议吗?
答案 0 :(得分:9)
你说错误是这样的:
File not found at path: var/www/apk.land/storage/extracted_apks/res/drawable-xxxhdpi-v4/icon.png
此错误表示无法在var/www
找到,这意味着它正在寻找apk.land/var/www
,而您的文件位于/var/www
的某处。对此的快速解决方法是使用file
协议。只需使用它:
file:///var/www/storage/apk.land/storage/extracted_apks/res/drawable-xxxhdpi-v4/icon.png
答案 1 :(得分:3)
尝试File::copy($file, $dest)
代替of Storage::copy($old, $new)
File::copy()
是 PHP&#39> copy()
函数
答案 2 :(得分:3)
在/
var/www/apk.land/storage/extracted_apks/res/drawable-xxxhdpi-v4/icon.png
路径相对于当前目录。如果添加/
,则购买,路径是根目录的绝对路径。
答案 3 :(得分:0)
您必须选择这样的正确磁盘
$file2 ='public/'.$page->thumbnail;
$destination = 'public/bundles/ttt.png';
if( Storage::disk('local')->exists($file2)){
Storage::disk('local')->copy($file2,$destination);
}