7

私はいくつかの写真をアップロードし、Laravel 関数のビルドでこれを処理しようとしています。しかし、私は一生、これを適切に行う方法を理解することはできません。実際に何かをアップロードできましたが、いくつか問題が発生しました。これは私が今持っているコードです:

ドキュメントを見て、この関数を見つけた場合: $file = Input::file('photo');I've used this function, and what the content $fileis Symfony\Component\HttpFoundation\File\UploadedFilea instance ofファイルと対話しています。」http://laravel.com/docs/4.2/requests#files

Input::file('photo')->move($destinationPath);次に、サーバー上の目的のフォルダーにファイルを保存する必要があるこの関数を使用しました。そして、それはしました。しかし、ここで問題が発生します。アップロードされたすべてのファイルは、拡張子phpgoJnLcなしのようなファイル名になります。

から利用可能な関数を見て、空の文字列を提供し、のようなものも提供してみましSplFileInfoた。getExtensiongetFilenamephpgoJnLc

次に、インターネットを調べたところ、Laravel 3 のコードの一部が見つかりました。そこでは、次のようなことが行われました。

$filename = Str::random(20) .'.'. File::extension(Input::file('photo.name'));

しかし、これの結果はStr::random(20)、ドットが続く結果のみを私に与えます. 繰り返しますが、ファイル拡張子はありません。

それで、私は何を間違っていますか?Laravel 4でファイルをアップロードするには?

4

3 に答える 3

1

特にアップロードされた画像の名前を変更したい場合、これは私にとってはうまくいきました:

$filename = 'New_Name'.'.'.Input::file('photo')->getClientOriginalExtension();
于 2015-01-13T04:29:11.753 に答える
0

次のように、元のファイル拡張子を付けてファイルの名前を生成することもできます。

$filename = Str::random(20) . '.' . Input::file('image')->guessExtension();

Laravel 4で以下を使用しようとすると:

$filename = Str::random(20) .'.'. File::extension(Input::file('photo.name'));

次のエラーが表示されます。

'Call to undefined method Illuminate\Filesystem\Filesystem::guessExtension()'
于 2013-12-24T16:19:16.637 に答える