15

画像アップロード用のフォーム フィールドがあり、次のように 'files' => true で開きます。

{{ Form::label('image', 'Image') }}
{{ Form::file('image') }}

そして、コントローラーで、ファイルがアップロードされたかどうかを確認し、それで何かをしたい:

if (Input::hasFile('image')){
        $in_path = 'img/';
        $in_extension = Input::file('image')->getClientOriginalExtension();
        $filename = Input::get('name').".".$in_extension;
        Input::file('image')->move($in_path, $filename);
        $user->image = $filename;
    }

しかし、Input::hasFile常に false を返し、その理由がわかりません。

Input::file('image');

結果:

Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.JPG
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1
[pathName:SplFileInfo:private] => 
[fileName:SplFileInfo:private] => 
)

別のユーザーの別の写真でテストしましたが、これは正常に機能します。これが一部のユーザーで機能し、他の一部のユーザーで機能しない理由がわかりません。
受け入れられない写真の種類はありますか?

この問題の原因として他に考えられる原因は何ですか?

4

4 に答える 4

17

私は何が間違っていたかを解決しました。コードは問題ありませんが、問題は一部の画像が単純に大きすぎることでした。

編集:
Don't Panic が指摘したように、編集upload_max_filesizeによって問題を解決できます。

于 2014-09-19T09:37:58.620 に答える
7

どのようにフォームを開きますか? フォームで必要なファイルを受け入れたい場合は、次のように開きます。

echo Form::open(array('url' => 'foo/bar', 'files' => true))

Laravel Docs でフォームを開く

于 2014-09-19T08:11:14.920 に答える