【问题标题】:save() with Original name File使用原始名称 File 的 save()
【发布时间】:2020-11-24 17:10:25
【问题描述】:

我有一些问题。 我需要使用原始名称而不是名称 FAJFJAKJ@$!@@!# 将我的文件保存到 storage/public/apps - 看起来像这样。

我错过了什么??

控制器

public function upload(Request $request)
{
    $request->file('file')->save('public/apps');

    return redirect()->back()->with('message', 'File Upload Successfully!');
}

web.php

Route::prefix('admin')->middleware('auth')->group(function(){
 Route::get('/', 'Admin\IndexController@index');
 Route::get('dashboard', 'Admin\IndexController@index')->name('dashboard');
 
 
 Route::get('upload-files', 'Admin\UploadController@index');
 Route::post('upload-files', 'Admin\UploadController@upload');
 
 
 Route::get('links', 'Admin\LinkController@index')->name('links');
 Route::get('links/create', 'Admin\LinkController@createUlr')->name('links.create');
 Route::post('links/create', 'Admin\LinkController@store')->name('links.store');
 Route::get('links/{id}', 'Admin\LinkController@linkById')->name('link.chose');
 Route::post('links/{id}', 'Admin\LinkController@update')->name('link.delete');
 Route::delete('links/{id}', 'Admin\LinkController@delete')->name('link.delete');
});

表格

<form class="col-lg-push-6" action="/admin/upload-files" method="POST" enctype="multipart/form-data">
  @csrf
  <div class="form-group bmd-form-group">
   <label class="bmd-label-floating">New File</label>
   <br>
   <br>
   <br>
   <input type="file" class="form-control" size="100" name="file">
  </div>
  <button  class="btn btn-primary" type="submit">Create</button>
 </form>

【问题讨论】:

标签: php laravel laravel-8


【解决方案1】:

在 Laravel Controller 中处理文件上传时,以下内容可能会有所帮助

public function store(Request $request)
{

    //Validate request data if there are other fields as well
    // do not include image fields in validation rules
    $validatedData = $request->validate($rules, $request->except('image'));

    //Check if $request has uploaded file and whether it's a valid file 
    if($request->hasFile('image') && $request->file('image')->isValid()) {
        //Custom name pattern as per application preference
        $filename = time() . '.' . $request->file('image')->extension();

        //Or - Get the original name of the uploaded file
        $filename = $request->file('image')->getClientOriginalName();

        //Store the file in desired directory and assign the path to the image field in validated data
        $validatedData['image'] = $request->file('image')->storeAs('images', $filename);
    }  

    //Fill the values from validatedData and save the record
    $model->fill($validatedData);
    $model->save();

}

【讨论】:

  • 什么?!现在我的dd($request-&gt;file('file')) 返回[] - 10 分钟前一切正常!
【解决方案2】:

如果您希望使用原始名称上传文件,您可以使用getClientOriginalName() 函数,该函数将返回文件的原始名称,这里有一些代码可以帮助您将文件上传到您想要的位置,我强烈推荐用变量包装你的路径。

public function upload(Request $request)
{
    $imageName = "{$request->file->getClientOriginalName()}.{$request->file->getClientOriginalExtension()}";
    $imagePath = "public/apps/{$imageName}";
    $request->file->move(public_path("public/apps"), $imageName);
}

【讨论】:

    【解决方案3】:

    您可以在下面看到:

    <?php
    use Illuminate\Http\Request;
    //importing user model
    use App\User;
    
    class UploadImage
    {
        function avatarUpload(Request $request)
        {
    
    
            $file = $request->file('avatar_img');
            //getting original name of file
            $fileName = $file->getClientOriginalName();
            $post = [
                'avatar_img'=> $fileName,
                'id'=> $request->user()->id
            ];
            //saving into database
            $create = User::create($post);
            if($create)
            {
                //store file, it will store in avatars folder inside app folder
                $store = $file->storeAs('avatars',$fileName);
    
                return $store ? 'Avatar image uploaded' : 'Avatar image store failed';
            }
            return 'Avatar image upload failed';        
        }   
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 1970-01-01
      • 2018-03-24
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 2015-06-10
      相关资源
      最近更新 更多