Вместо этого Laravel хранит временные файлы - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть код ниже, и вместо сохранения файлов он сохраняет временные файлы в папке

код

public function upload(Request $request)
{
    //validate the file
    if (!$request->hasFile('file_to_import')) {
        return new JsonResponse([
            'status'  => 'fail',
            'message' => trans('json.needSelectFile'),
        ]);
    }

    $file = $request->file('file_to_import');

    if (strtolower($file->getClientOriginalExtension()) != 'csv') {
        return new JsonResponse([
            'status'  => 'fail',
            'message' => trans('json.needValidCSV'),
        ]);
    }

    $disk = Storage::disk('local');

    if (!$disk->exists('feeds/translations')) {
        $disk->makeDirectory('feeds/translations');
    }

    $uploaded_date = now();
    $name_without_extension = str_replace('.' . $file->getClientOriginalExtension(), '', $file->getClientOriginalName());

    $new_filename = $name_without_extension . ' - ' . $uploaded_date . '.' . $file->getClientOriginalExtension();
    $location = storage_path('app/feeds/translations/', $new_filename);
    $file->move($location);

    return new JsonResponse([
        'status'   => 'success',
        'filename' => $new_filename,
    ]);
}

file i uploaded

two

what saved in my app location

one

Что мне нужно

Сохраняет реальный файл translator_translations - 2019-04-15 05:52:50.csv, а не файл tmp.

есть идеи?

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Вам нужно передать имя файла в функцию move() вместо любой другой, иначе это займет временное имя.

$file->move($destinationPath,$filename);

Примечания:

Вы должны использовать правильное имя файла. Имя файла не должно содержать никаких специальных символов, таких как пробелы, запятая и двоеточие (:).

0 голосов
/ 15 апреля 2019

Вы неверный подход Используйте функцию перемещения, чтобы передать два параметра старому каталогу в новый каталог. Вы удалили эту строку $file->move($location); и используете $file->storeAs( $location, $new_filename );

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