在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹

时间:2017-07-06 18:10:06

标签: php laravel hyperlink storage directory

我正在使用laravel 5.4创建我的网站的新版本,并希望保留与旧网站相同的链接。

我的旧网站有这样的链接图像: 的 domain.com/uploaded/cat.jpg

在laravel中,需要创建一个符号链接来显示存储的图像,但它使用名为 storage 的默认文件夹保存它们,如下所示: 的 domain.com/storage/cat.jpg

如何将默认名称更改为“已上传”或其他?

我尝试使用以下内容更改 \ config \ filesystems.php 文件中的 url

public Dictionary<Guid, string> UcList
{
    get { return ViewState["MyUcIds"] != null ? (Dictionary<Guid, string>)ViewState["MyUcIds"] : new Dictionary<Guid, string>(); }
    set { ViewState["MyUcIds"] = value; }
}

public void InitializeUC()
{
    int index = 1;
    foreach (var item in UcList)
    {
        var myUc = (UserControls_uc_MyUserControl)LoadControl("~/UserControls/uc_MyUserControl.ascx");
        myUc.ID = item.Value;
        pnlMyUC.Controls.AddAt(index, myUc);
        index++;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        LoadControl();
    else
        InitializeUC();
}

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

和我的控制器

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/uploaded',
        'visibility' => 'public',
    ],

3 个答案:

答案 0 :(得分:0)

确保您已创建符号链接。

根据您的配置,您可以运行此命令:

ln -s storage/app/public public/uploaded

然后,您可以访问您的文件:

Storage::disk('public')->url('example.jpg')

或者只是使用asset()助手:

asset('uploaded/example.jpg');

答案 1 :(得分:0)

使用任何php文件在服务器中执行此代码以创建符号链接。创建链接后,文件将可公开访问。

target =&#39; / home / cfrcoclm / public_html / agencies / storage / app / public&#39;
shortcut =&#39; / home / cfrcoclm / public_html / agencies / uploaded&#39; 符号链接(目标,快捷方式) ec ho(&#34; Link Created!&#34;) `

答案 2 :(得分:0)

如果你没有SSH访问,你也可以在下面编写这个单行脚本并在你的服务器上运行它 - 考虑到正确的目录路径

符号链接( '/家庭/域名/ laravelprojectname /存储/应用程序/公共', '/家庭/域名/的public_html /存储');