2016-06-14 29 views
0

ファイルをSharePointリストアイテムに添付する必要があります。私はすでにファイルアップロードコントロールでフォームを作成しましたが、動作させることはできません!助けてもらえますか?FileUpload to SharePoint List添付ファイル

protected void btnSave_Click(object sender, EventArgs e) 
    { 
     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      using (SPSite site = new SPSite("http://intradev")) 
      { 
       using (SPWeb web = site.OpenWeb("/")) 
       { 
        web.AllowUnsafeUpdates = true; 

        SPList app = web.Lists["projetoandre"]; 

        SPListItemCollection collection = app.GetItems(); 

        SPListItem item = collection.Add(); 
        item["Title"] = txtTitle.Text; 
        item["Data"] = Convert.ToString(txtDataPretendida.Text); 
        item["Banco"] = Convert.ToString(ddlBanco.Text); 
        item["Confirmação"] = Convert.ToString(rdlUrgencia.Text); 

        //Stream fs = FileUploadControl.PostedFile.InputStream; 
        //byte[] fileContents = new byte[fs.Length]; 
        //fs.Read(fileContents, 0, (int)fs.Length); 
        //fs.Close(); 

        SPAttachmentCollection attachments = item.Attachments; 
        //string fileName = "Ficheiro_" + Path.GetFileName(FileUploadControl.PostedFile.FileName); 
        //attachments.Add(fileName, fileContents); 

        item.Update(); 

        web.AllowUnsafeUpdates = false; 
       } 
      } 
     }); 
    } 

ありがとうございます! 編集:これらのコード行をコメントすることで、リストを記入できますが、もちろん添付ファイルはありません。

+0

あなたが直面している問題は何ですか?何かエラーがありますか? –

+0

私は新しいアイテムを作成してそれにファイルを添付することができません。 –

+0

ファイル添付部分にコメントを付けて、リスト項目が作成されているかどうかを確認してください。動作していれば教えてください。 –

答えて

0

問題は、SharePointのセキュリティが原因である可能性があります。すぐ<asp:UpdatePanel>の閉鎖前<ContentTemplate>タグの終了後に次のコードを追加し、ユーザーコントロールファイルで

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    SPSecurity.RunWithElevatedPrivileges(delegate() 
    { 
     using (SPSite site = new SPSite("http://thiswebsite")) 
     { 
      using (SPWeb web = site.OpenWeb("/")) 
      { 
       web.AllowUnsafeUpdates = true; 

       SPList app = web.Lists["projetoandre"]; 

       SPListItemCollection collection = app.GetItems(); 

       SPListItem item = collection.Add(); 
       item["Title"] = txtTitle.Text; 
       item["Data"] = Convert.ToString(txtDataPretendida.Text); 
       item["Banco"] = Convert.ToString(ddlBanco.Text); 
       item["Confirmação"] = Convert.ToString(rdlUrgencia.Text); 

       if(FileUploadControl.HasFile) 
       { 
        Stream fs = FileUploadControl.PostedFile.InputStream; 
        byte[] fileContents = new byte[fs.Length]; 
        fs.Read(fileContents, 0, (int)fs.Length); 
        fs.Close(); 

        SPAttachmentCollection attachments = item.Attachments; 
        string fileName = "Ficheiro_" + Path.GetFileName(FileUploadControl.PostedFile.FileName); 
        attachments.Add(fileName, fileContents); 
       } 

       item.Update(); 

       web.AllowUnsafeUpdates = false; 
      } 
     } 
    }); 
} 

::次のコードを試してみてください

<Triggers> 
     <asp:PostBackTrigger ControlID = "btnSave" /> 
</Triggers> 
+0

NullReferenceExceptionがコードによって処理されませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。 ストリームfs = FileUploadControl.PostedFile.InputStream; –

+0

@ANDRÉGONÇALVES、私の編集を確認してください.. –

+0

私は試してみるつもりです! –

関連する問題