MAC*_*MAC 5 c# asp.net sharepoint metadata file-upload
你能帮我解决一下如何将文件添加到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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,但我需要上传一个包含元数据的文件.如果可能,请通过编辑此代码来帮助我.我在文档库中创建了3列.
Rya*_*yan 16
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()
Run Code Online (Sandbox Code Playgroud)
还有一个过载,您可以使用要添加的元数据发送哈希表.例如:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13313 次 |
| 最近记录: |