こんにちは、 WFFM (sitecore)で「フォームのような友人に伝える」を作成しようとしていますが、フォームにファイルを添付する機能も追加しています。これは正常に機能しています。今、ユーザーが1 MBを超える大きなファイルを添付することを禁止したいので、新しいクラスを作成します
public class LimiteFileSize
{
public void Process(FormUploadFileArgs args)
{
int size = 1049000;
if (args.File.Data.Length > size)
{
Sitecore.Diagnostics.Log.Error(string.Format("User {0} tried to upload a file larger than 10 Mb. The file name is {1}",
Sitecore.Context.User.Name,
args.File.FileName), this);
args.AbortPipeline();
}
}
}
それをforms.configに登録します
<formUploadFile>
<processor type="Sitecore.Form.Core.Pipelines.FormUploadFile.ResolveFolder, Sitecore.Forms.Core"/>
<processor type="Sitecore.Form.Core.Pipelines.FormUploadFile.Save, Sitecore.Forms.Core"/>
<processor type="scwffm2.Helper.LimiteFileSize, scwffm2.Helper"/>
</formUploadFile>
今、コメントしたり削除したりしないと(これは WFFM のデフォルトの保存アクションです) `
<processor type="Sitecore.Form.Core.Pipelines.FormUploadFile.Save, Sitecore.Forms.Core"/>
` 大きなファイルはデフォルトのアクションを使用してアップロードされ、上記の行がコメント化されている場合、データベースにファイルが大きくても小さくても保存されません。問題は、LimiteFileSize の処理 が正常に機能していることですが、ファイル サイズが 1 MB 未満の場合はファイルを保存しないだけで、ファイル サイズをチェックすることです。ファイル サイズが 1 MB 未満の場合は、else 条件を使用する必要があります。??