2012-11-28 3 views
8

Ich arbeite mit einem Visual WebPart und möchte ein Bild von meinem FileUpload-Steuerelement in eine SharePoint-Liste hochladen. Dies ist der Code, den ich benutze, aber ich kann es nicht zur Arbeit bringen (Titel, Produkt, Farbe, etc. funktioniert, aber nicht Bild). Ich habe auch SparQube installiert.Bild kann nicht in eine SharePoint-Liste hochgeladen werden

Dies ist mein ListView: Image http://i47.tinypic.com/x5z2v7.jpg.

protected void Button_Save_Click(object sender, EventArgs e) 
{ 
    SPSite currentSite = SPContext.Current.Site; 
    SPList myList = currentSite.RootWeb.Lists.TryGetList("SharePointDatabase"); 

    try 
    { 
     if (myList != null && FileUpload_Pic.PostedFile != null && FileUpload_Pic.HasFile) 
     { 
      SPListItem listItem = myList.Items.Add(); 

      listItem["Title"] = TextBox_Name.Text; 
      listItem["ProductNumber"] = TextBox_ProdNum.Text; 
      listItem["Color"] = TextBox_Color.Text; 
      listItem["ListPrice"] = TextBox_ListPrice.Text; 
      listItem["MoreInformation"] = TextBox_MoreInfo.Text; 

      string fileName = Path.GetFileName(FileUpload_Pic.PostedFile.FileName); 
      listItem["Image"] = fileName; 

      listItem.Update();            

      TextBox_Search.Text = string.Empty; 
      TextBox_Name.Text = string.Empty; 
      TextBox_MoreInfo.Text = string.Empty; 
      TextBox_ProdNum.Text = string.Empty; 
      TextBox_Color.Text = string.Empty; 
      TextBox_ListPrice.Text = string.Empty; 

      Label_Exception.Text = "Saved to Database list."; 

      Dispose(); 
     } 
    } 
    catch (Exception x) 
    { 
     Label_Exception.Text = x.Message; 
    } 

} 
+0

jede Ausnahme u der Lage sein, auf wite –

Antwort

1

Sie können Datei als Stream direkt von Datei-Upload auf bestimmtes Web mit folgenden Methode hinzufügen und dann den Dateipfad zu der Liste hinzufügen, wie in Beispiel unten

SPContext.Current.Web.Files.Add(String.Concat(SPContext.Current.Web.Site.RootWeb.Url, path), stream, true); 

Pfad relativer Pfad für das Bild gezeigt ist. im Namen der Benutzervorgangsdatei. Stream kann mit FileUpload.FileContent in Datei Upload-Steuerelement

Dann fügen Sie diesen Pfad zu der Liste wie folgt.

listItem["Image"] = path; 

Dies ist für alle Browser funktionieren.

1

Sind Sie sicher, dass der SPList den Atachment Upload aktiviert hat?

Ich hatte die Erfahrung gemacht, dass die normale Ribbon-Taste nicht ausgegraut ist, obwohl die Liste Itemattachments nicht halten kann.

SPList list = new SPList(); // Sample 
list.EnableAttachments = false; //set 
bool attachmentsAllowed = list.EnableAttachments; //get 

Welcher Feldtyp ist "Image"? Es ist nicht der Ordner Anlagen ...

Eine andere Möglichkeit, um Ihr Bild zu speichern, ist es in eine Bibliothek hochladen und verwenden Sie ein "Hyperlink" -Feld.

verwenden als Hilfe: http://www.sharepoint-tips.com/2007/10/code-practices-gettingsetting-values.html