2016-07-26 7 views
0

userform moduleを使用してオンラインフォームを作成できるSilverstripeのWebサイトがあります。SilverstripeユーザーフォームモジュールのFileFieldsでアップロードされたファイルサイズを検証する方法

フォームを介してファイルをアップロードできるようにするには、管理者が「ファイルアップロードフィールド」をフォームに追加します。これにより、Filefieldがフォームに追加されます。

FilefieldはUploadFieldの簡略化されたバージョンであり、最大アップロードファイルサイズなどのいくつかの検証オプションが可能です。

Filefieldにはこれらのオプションがありますか?

私の問題は、グローバルPHP upload_max_filesizepost_max_sizeをバックエンドのCMS機能のために高く保つ必要がありますが、私はフロントエンドのFilefieldのアップロードを8megに制限したいと思います。

userformモジュールのFilefieldを検証して、それが失敗するようにすることはできますか?ファイルがPHP変数より小さい一定のサイズを超えている場合はメッセージを表示しますか?

答えて

0

機能が組み込まれているように見えません。ドキュメントには、Webサーバー[1]によってファイルサイズが制限されていることが記載されています。

しかし、FileFieldConfigで最大ファイルサイズをチェックvalidate()関数[2] Uploadクラスのその順番にUpload_Validatorクラスを使用していますvalidate()機能を使用しています。

これは、ファイルのサイズを制限するためにあなたの設定ファイルに以下を追加することができます意味:

# Don't forget to flush afterwards :-) 
Upload_Validator: 
    default_max_file_size: '1m' # 1 megabyte 

を、それはおそらく同様に他のすべてのUploadField Sに影響を意味し、これはデフォルトの設定であることに注意してください。ただし、大きいファイルを処理する必要がある他のファイルには制限を設定することができます。

[1] https://github.com/silverstripe/silverstripe-userforms/blob/master/docs/en/user-documentation.md#file-upload-field

[2] https://github.com/silverstripe/silverstripe-framework/blob/master/filesystem/Upload.php#L536

+0

は、私が試したのだUpload_Validator YML設定する前に、それは動作しませんでした - フォーム正常に提出したが、オーバーサイズのファイルが表示されません。 CMSのフォーム提出で – BaronGrivet

関連する問題