【问题标题】:October CMS How to Change Path of File Upload?十月 CMS 如何更改文件上传路径?
【发布时间】:2017-06-14 23:17:24
【问题描述】:

我正在使用十月 CMS。

我做了一个简单的前端文件上传插件。我有一个模型和组件。

在 Model Uploader.php 中我使用

public $attachOne = [
    'videofile' => 'System\Models\File'
];

在组件中

public function onUpload(){
    $uploader = new Uploader();
    $uploader->videofile = Input::file('videofile');
    $uploader->save();
    Flash::success('File Uploaded');
    return Redirect::back();
}

默认情况下,上传到

/storage/app/uploads/public/random-dir/random-name.mp4

CMS 给文件一个随机的目录和名称。

但后端媒体上传到

/storage/app/media/filename.mp4

文件名被保留。

如何将文件上传到 /media 而不是 /uploads/public?

或者是否可以在 /uploads/public 中定义文件夹和文件名而不是随机的?

【问题讨论】:

  • $uploader->save() 是被继承还是你写的函数?
  • @OfirBaruch 我跟着一个指南。我没有写保存功能。我认为它正在被继承。

标签: php octobercms


【解决方案1】:

您可以在将文件附加到 Uploader 模型之前移动文件:

Input::file('videofile')->move($destinationPath, $fileName);

你可以这样获取原始文件名

$name = Input::file('videofile')->getClientOriginalName();

【讨论】:

  • 谢谢,它适用于移动文件。当我使用 $uploader->videofile = (你的移动代码) 和 save() 时,文件上传数据在数据库中是空的,之前它有详细信息和路径链接。您知道如何将新位置保存到数据库吗? i.imgur.com/Pz9pIJu.png
  • 移动文件后模型保存了吗?
  • 搬家后保存了。如果不移动文件(默认),则更新 system_files 数据库表。如果移动文件,则不会更新。我通过 columns.yaml 查看表信息。这是一个屏幕截图。 i.imgur.com/A0udWWB.jpg
  • 您必须保存文件模型,而不是上传者。在您的情况下,$uploader->videofile
  • 如何保存文件模型?我试过了,但我无法从我的 Uploader 类访问它。 i.imgur.com/JuhJxaQ.png
猜你喜欢
  • 2016-09-11
  • 1970-01-01
  • 2019-09-11
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 2017-09-27
  • 2016-05-22
  • 1970-01-01
相关资源
最近更新 更多