Как я могу переименовать файл, который я должен загрузить и сохранить в папку - PullRequest
1 голос
/ 04 ноября 2019

Я хочу загрузить изображение и сохранить его в storage/app/logos.

И я хочу переименовать его с информацией, которую пользователь вставляет на вход. Я уже сделал dd();, и он работает хорошо.

Я уже пытался изменить сохранение как. Но когда дело доходит до сохранения файла в папке, он сохраняет нечитаемый файл с именем $name.

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form action="emp" method="POST" enctype="multipart/form-data">
    {{ csrf_field() }}
    Book title:
    <br />
    <input type="text" name="title" />
    <br /><br />
    Logo:
    <br />
    <input type="file" name="logo" />
    <br /><br />
    <input type="submit" value=" Save " />
</form>
</body>
</html>

И это мой контроллер:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class empController extends Controller
{
    public function store(Request $request)
    {
        $name = $request->input('title');
        $request->logo->storeAs('logos', '$name');
    }
}

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Вы цитируете имя переменной, чтобы оно стало строкой

$request->file('logo')->storeAs('logos', $name);

Начиная с документы

Указание имени файла
Если вы не хотите, чтобы имя файла автоматически присваивалось вашему сохраненному файлу, вы можете использовать метод storeAs, который получает путь, имя файла и (необязательно) диск в качестве аргументов:

$path = $request->file('avatar')->storeAs(
    'avatars', $request->user()->id
);

Надеюсь, это поможет

0 голосов
/ 04 ноября 2019

на случай, если вы захотите сделать это самостоятельно:

// initializing file name with null
$data['logo'] = null;

if ($request->hasFile("logo")) {
        $fileName = md5(time() . rand()) . "." . pathinfo($request->photo- 
                    >getClientOriginalName(), PATHINFO_EXTENSION);
        $destinationPath = storage_path('/app/logos/');
        $request->photo->move($destinationPath,$fileName);
        $data['logo'] = $fileName; // storing filename
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...