2017-04-05 11 views
3

laravelストレージを使用してファイルをアップロードしようとしています。つまり、 $request->file('input_field_name')->store('directory_name');ですが、ランダムな文字列名で指定したディレクトリにファイルを保存しています。Laravel - ストレージを使用して画像をアップロード中にカスタム名を作成

カスタム名とアップロードしたファイル(現在のタイムスタンプを実際のファイル名と連結して保存します)を保存します。この機能を実現する最速かつ簡単な方法はありますか?代わりに

答えて

5

使用storeAs()

$request->file('input_field_name')->storeAs('directory_name', time().'.jpg'); 
+0

は@AlexeyMezeninが、私はこのコードを試してみましょうありがとうございます。 –

+1

シンプルで素敵な@AlexeyMezenin !!! +1 –

+0

@AlexeyMezenin、うまく働いていて、すばやく返信いただきありがとうございます。 –

3

あなたは、コードの下に使用することができます:

use Illuminate\Http\File;

メイクはあなたのコードの変更に続いて

使用ファイルファサード

01詳細については
$custom_file_name = time().'-'.$request->file('input_field_name')->getClientOriginalName(); 
$path = $request->file('input_field_name')->storeAs('directory_name',$custom_file_name); 

:@Alexey Mezenin

ご希望により言及としてLaravel FilesystemそしてstoreAsこのコードは:)

+0

これは正しい答えを見ます! –

2

ます。また、この

$ImgValue  = $request->service_photo; 
$getFileExt = $ImgValue->getClientOriginalExtension(); 
$uploadedFile = time()'.'.$getFileExt; 
$uploadDir = public_path('UPLOAS_PATH'); 
$ImgValue->move($uploadDir, $uploadedFile); 

おかげのように試みることができるのに役立ちます、

+0

これは実際にはパブリックディレクトリの中にファイルを保存する最も簡単な方法です:)しかし、私は@BachchaSinghがデフォルトのStorageを使用してこれを達成したいと思います。最も簡単な方法を提案するための+1。ハッピーコーディング:) –

1

これも試すことができます。

$originalName = time().'.'.$file->getClientOriginalName(); 
$filename = str_slug(pathinfo($originalName, PATHINFO_FILENAME), "-"); 
$extension = pathinfo($originalName, PATHINFO_EXTENSION); 
$path = public_path('/uploads/'); 

//Call getNewFileName function 
$finalFullName = $this->getNewFileName($filename, $extension, $path); 

// Function getNewFileName 

public function getNewFileName($filename, $extension, $path) 
    { 

     $i = 1; 
     $new_filename = $filename . '.' . $extension; 
     while (File::exists($path . $new_filename)) 
      $new_filename = $filename . '_' . $i++ . '.' . $extension; 
     return $new_filename; 

    } 
2

次の仕事をしてみてください。

$image = time() .'_'. $request->file('image')->getClientOriginalName(); 
$path = base_path() . '/public/uploads/'; 
$request->file('image')->move($path, $image); 
関連する問題