[英]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對象
然后,您可以使用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.