上传文件由“/files/default/2020/07-30/182238ee4e1c385083.png” 变成了“/files\\default/2020/07-30/182238ee4e1c385083.png”directory_separator,这个问题多出现在Windows服务器中。
原因是因为在不同的服务器环境中“DIRECTORY_SEPARATOR”所识别的值是不同的directory_separator。所以需要对代码进行修改
程序修改src/AppBundle/Controller/EditorController.php
// $url = rtrim($this->container->getParameter('topxia.upload.public_url_path'), ' /').DIRECTORY_SEPARATOR.$parsed['path'];// Windows主机路径错误处理directory_separator,替换斜线$url = rtrim($this->container->getParameter('topxia.upload.public_url_path'), ' /').'/'.$parsed['path'];
怎么修改laravel的config下面的配置文件
前言
难道每次改 .env 都得通过修改代码来改吗?.env 文件能不能通过在后台配置呢? 其实是很简单就可以实现的,把以下函数加入到你的项目中
示例代码
function modifyEnv(array $data)
{
$envPath = base_path() . DIRECTORY_SEPARATOR . \'.env\';
$contentArray = collect(file($envPath, FILE_IGNORE_NEW_LINES));
$contentArray->transform(function ($item) use ($data){
foreach ($data as $key => $value){
if(str_contains($item, $key)){
return $key . \'=\' . $value;
}
}
return $item;
});
$content = implode($contentArray->toArray(), \"\\n\");
\\File::put($envPath, $content);
}
使用
// 你可以更新你想要的任何值 key => value
$data = [
\'APP_ENV\' => \'your_environment\',
\'APP_KEY\' => \'your_key\',
\'APP_DEBUG\' => \'trueOrFalse\',
\'DB_DATABASE\' => \'test\',
\'DB_USERNAME\' => \'test\',
\'DB_PASSWORD\' => \'test\',
\'DB_HOST\' => \'localhost\',
\'CACHE_DRIVER\' => \'file\',
\'SESSION_DRIVER\' => \'file\',
];
// 或者
$data = [
\'DB_HOST\' => \'127.0.0.1\',
];
// 使用函数更新
modifyEnv($data);
怎样,是不是很简单,这样就可以通过后台图形化配置 Laravel 的 .env 文件啦