2012-04-07 18 views

答えて

5

ご使用の場合はItemAddingとなります。 ItemAddingイベントメソッドでは単なるエラーメッセージを通じて、このような

あなたのコードの何かの前に成功しLibrary.if unvalidドキュメントにアップロードされたドキュメントの拡張子を確認してください。

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"; 

       } 

     } 

    } 
+0

Thnx親愛なるすべては大丈夫です....ありがとうございます:) – qablan89

+0

あなたの歓迎:) – Jigs

0

ライブラリにSPItemEventReceiverを使用し、ロジックをItemUpdating()およびItemAdding()メソッドに追加できます。

+0

は申し訳ありませんが、イベントレシーバーを追加した項目で、画像はまだ、まだアップロードされていない、 – qablan89

+0

いずれかアドバイス私にはnull例外を与えるのだろうか? – qablan89

+0

@ qablan89、あなたが正しく理解している場合は、アップロードする前に正確に内線番号を確認する必要があります。したがって、ItemAdding()メソッドのパラメータであるSPItemEventPropertiesオブジェクトの 'properties'には、BeforeUrlプロパティとAfterUrlプロパティが含まれています。これらのプロパティには、ユーザーがアップロードするファイルの名前が含まれます。 – Tannheuser

0

あなたはカスタムリストテンプレートを作成してみてくださいすることができますをし、デフォルトのNewForm.aspxEditForm.aspxページを置き換えてください。これらのcustom form templatesには、デフォルトの画像ライブラリテンプレートと同じユーザーコントロールとボタンが含まれている必要はありません。画像をアップロードするための豊富なUIを備えたSilverlight Webパーツを作成することができます。もっと多くのコードを書く必要があります。

私が考えることができるOOTBの解決策は、新しい画像をすべて実行するようにするワークフローだと思いますが、それはかなり過剰なものになるでしょうエンドユーザーのために...

もちろん、ItemAddingのメタデータだけを使用して検証することができれば、それは時間を大幅に節約できます。

--- Ferda

関連する問題