私はユーザーが複数のファイルを複数のファイルにアップロードできる形式のLaravel 5.3アプリを持っています。ファイルフィールド。フォームは、ファイルをアップロードして、私が期待しているようにdestinationPathに移動することができますが、ファイル 'filename'の各値を変更することはできません。ファイル名の値をphp ** .tmpとして保存し続けます。個々のアップロードファイル名を設定するにはどうすればよいですか?
ここに私のコントローラーのforeachがあります。
$files = $request->files;
foreach($files as $file){
$destinationPath = 'images/forms'; // upload path
$filename = $file->getClientOriginalName(); // get image name
$file->move($destinationPath, $filename); // uploading file to given path
$file->filename = $filename;
}
私は私が探していたがい値(元の名前)を得るかのforeach内のI dd($filename)
とdd($file->filename)
もし私がそのforeachの外dd($files)
、ファイル名が一時PHPの値として設定されている場合。
私には何が欠けていますか?ありがとう。
EDIT
ファイルオブジェクトは、次のようになります。
-test:偽
-originalName: "sample_header_1280.png"
-mimeType: "画像/ PNG"
-size:51038
-error:0
パス: "C:¥xampp¥tmp"
ファイル名: "php7240.tmp"
ベース名: "php7240.tmp"
パス名: "C:\ xamppの\ TMP \ php7240.tmp"
拡張子: "TMP"
のrealpath:「C:\ xamppの\ tmp \ php7240.tmp "
originalNameをdbに保存しようとしていますが、デフォルトではファイル名を保存するようです。
なぜforeach内の最後の行を使用していますか? –
ファイルfilenameの値を設定しようとしています。詳細は私の編集を参照してください。 – RushVan