Laravel改为存储临时文件

我在下面有代码,而不是保存文件,而是将临时文件保存在适当的位置


代码

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

http://img4.mukewang.com/6082833f0001d2ed04710178.jpg

what saved in my app location

http://img2.mukewang.com/6082834e00017dda05890079.jpg

我需要的

是保存真实文件translator_translations - 2019-04-15 05:52:50.csv而不是tmp文件。

任何想法?



桃花长相依
浏览 294回答 2
2回答

UYOU

您需要将文件名传递给move()函数,而不要传递给其他任何函数,否则它将采用临时名称。$file->move($destinationPath,$filename);注意事项:您应该使用正确的文件名。文件名不应包含任何特殊字符,例如空格,逗号和冒号(:)。
打开App,查看更多内容
随时随地看视频慕课网APP