誰か助けてもらえますか、画像ライブラリにアップロードされた画像タイプを検証したいアップロード機能をカスタマイズしたい
スクリプトはどこに設定できますか?誰でもアドバイスできます???
誰か助けてもらえますか、画像ライブラリにアップロードされた画像タイプを検証したいアップロード機能をカスタマイズしたい
スクリプトはどこに設定できますか?誰でもアドバイスできます???
あなたはUseかもしれませんItemAdding
。イベントメソッドではItemAdding
、ライブラリに正常にアップロードされる前に、ドキュメントの拡張子を確認してください。無効なドキュメントの場合は、エラーメッセージを使用するよりも
あなたのコードはこのようなものです:
protected string[] ValidExtensions = new string[] { "png", "jpeg", "gif"};
public override void ItemAdding(SPItemEventProperties properties)
{
string strFileExtension = Path.GetExtension(properties.AfterUrl);
bool isValidExtension = false;
string strValidFileTypes = string.Empty;
using (SPWeb web = properties.OpenWeb())
{
foreach (string strValidExt in ValidExtensions)
{
if (strFileExtension.ToLower().EndsWith(strValidExt.ToLower()))
{
isValidExtension = true;
}
strValidFileTypes += (string.IsNullOrEmpty(strValidFileTypes) ? "" : ", ") + strValidExt;
}
// Here i am going to check is this validate or not if not than redirect to the
//Error Message Page.
if (!isValidExtension)
{
properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;
properties.RedirectUrl = properties.WebUrl + "/_layouts/error.aspx?ErrorText=" + "Only " + strValidFileTypes + " extenstions are allowed";
}
}
}
ライブラリにSPItemEventReceiverを使用して、ItemUpdating()メソッドとItemAdding()メソッドにロジックを追加できます。
カスタムリストテンプレートを作成して、デフォルトNewForm.aspx
のEditForm.aspx
ページとそこにあるページを置き換えることができます。これらのカスタムフォームテンプレートには、デフォルトの画像ライブラリテンプレートと同じユーザーコントロールとボタンを含める必要はありません。画像をアップロードするための豊富なUIを備えたSilverlightWebパーツを作成できます。たとえば、違いが大きくなるほど、記述しなければならないコードが増えます...
私が考えることができるOOTBソリューションは、すべての新しい画像を強制的に実行するワークフローですが、エンドユーザーにとってはかなりやり過ぎでしょう...
もちろん、他の人が示唆しているように、 ItemAddingのメタデータだけを使用して検証できれば、大幅な時間の節約になります。
---フェルダ