Как загрузить файл .zip на сервер (ОС Ubuntu) в Laravel? - PullRequest
0 голосов
/ 10 октября 2018

Добрый день всем!Я просто хочу спросить, как загрузить файл .zip на сервер (в ОС Ubuntu)?

Случай: я хочу загрузить файл .zip в папку на рабочем столе моего серверного компьютера (ОС Ubuntu).

Что я сделал до сих пор: у меня уже есть мой пользовательский интерфейс и несколько кодов.

Загрузка файла контроллера:

public function __construct() {
   view()->share('page_title', 'File Upload');
}
public function index(){
    $data = File::all();
    return view('pages.admin.system.file-upload.index',compact('data'));
}
public function create(){
    return view('pages.admin.system.file-upload.create');
}
public function store(Request $request){
    $this->validate($request, [
    'filename' => 'required',
    'filename.*' => 'mimes:doc,pdf,docx,zip'
    ]);

    if($request->hasfile('filename')) {
        foreach($request->file('filename') as $file) {
            $name=$file->getClientOriginalName();
            $extension = $file->getClientOriginalExtension();
            $file->move(public_path().'/system/', $name, $extension);  
            $data[] = $name;  
       }
    }
    $file= new File();
    $file->filename=json_encode($data);
    $file->save();
    session()->flash('save', 'Your files has been successfully added');
    return view('pages.admin.system.file-upload.index');
}

Каким должен быть мой следующий шаг?Нужно ли настраивать некоторый код в FileStorage.php?и каким должен быть правильный путь в этом $file->move(public_path().'/system/', $name, $extension);?

1 Ответ

0 голосов
/ 10 октября 2018

Давайте посмотрим, во-первых, public_path () возвращает путь к общей папке в корне вашего проекта.Это потому, что обычно вы не должны писать вне этой папки по соображениям безопасности.Есть способы переопределить это, но я бы посоветовал вам просто сделать ссылку на этом рабочем столе, которая указывает на эту папку.Вам, вероятно, придется управлять разрешениями, чтобы этот конкретный пользователь мог получить доступ к содержимому общей папки (и лучше всего только к этой папке).

Кроме того, «рабочий стол» - это папка в доме пользователя,и это зависит от того, какой менеджер рабочего стола вы используете (KDE, Gnome и т. д.), поэтому, если вы хотите записать данные на рабочий стол каждого пользователя, вам придется копировать данные, что не очень хорошая идея.

Итак, я бы просто поместил файлы в подпапку общих папок и символическую ссылку, указывающую на нее, где вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...