簡體   English   中英

使用元數據上傳文件

[英]Uploading file with metadata

你能幫我解決一下如何將文件添加到Sharepoint文檔庫嗎? 我在.NET中發現了一些文章,但我沒有得到如何實現這一目標的完整概念。

我使用以下代碼上傳了沒有元數據的文件:

if (fuDocument.PostedFile != null)
                {
                    if (fuDocument.PostedFile.ContentLength > 0)
                    {
                        Stream fileStream = fuDocument.PostedFile.InputStream;
                        byte[] byt = new byte[Convert.ToInt32(fuDocument.PostedFile.ContentLength)];
                        fileStream.Read(byt, 0, Convert.ToInt32(fuDocument.PostedFile.ContentLength));
                        fileStream.Close();


                        using (SPSite site = new SPSite(SPContext.Current.Site.Url))
                        {
                            using (SPWeb webcollection = site.OpenWeb())
                            {
                                SPFolder myfolder = webcollection.Folders["My Library"];
                                webcollection.AllowUnsafeUpdates = true;
                                myfolder.Files.Add(System.IO.Path.GetFileName(fuDocument.PostedFile.FileName), byt);

                            }
                        }
                    }
                }

這段代碼工作正常,但我需要上傳一個包含元數據的文件。 如果可能,請通過編輯此代碼來幫助我。 我在文檔庫中創建了3列。

SPFolder.Files.Add返回一個SPFile對象

SPFile.Item返回SPListItem對象

然后,您可以使用SPlistItem [“FieldName”]訪問每個字段(請參閱SPListItem鏈接的底部)

所以將它添加到你的代碼中(這沒有經過測試,但你應該得到這個想法)

SPFile file = myfolder.Files.Add(System.IO.Path.GetFileName(document.PostedFile.FileName);
SPListItem item = file.Item;
item["My Field"] = "Some value for your field";
item.Update()

還有一個過載,您可以使用要添加的元數據發送哈希表。 例如:

Hashtable metaData = new Hashtable();
metaData.Add("ContentTypeId", "some CT ID");
metaData.Add("Your Custom Field", "Your custom value");

SPFile file = library.RootFolder.Files.Add(
                    "filename.fileextension",
                    bytearray,
                    metaData,
                    false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM