尝试复制

时间:2015-08-19 18:29:34

标签: php laravel laravel-5 laravel-5.1

我试图将文件从一个位置复制到另一个位置。我确定位置是正确的,但我仍然在标题中收到错误。

这里有一些代码:

$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功能效果很好。

我无法在这里找到问题。

有什么建议吗?

4 个答案:

答案 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);
 }