上传带有元数据的文件

发布于 2024-08-31 05:17:28 字数 1258 浏览 1 评论 0原文

您能帮我了解如何将文件添加到 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 列。

Could you help me for how to add a file to the Sharepoint document library? I found some articles in .NET, but I didn't get the complete concept of how to accomplish this.

I uploaded a file without metadata by using this code:

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);

                            }
                        }
                    }
                }

This code is working fine as is, but I need to upload a file with metadata. Please help me by editing this code if it is possible. I created 3 columns in my document library.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

絕版丫頭 2024-09-07 05:17:28

SPFolder.Files.Add< /a> 返回 SPFile 对象

SPFile.Item 返回 SPListItem< /a> object

然后您可以使用 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()

SPFolder.Files.Add returns a SPFile object

SPFile.Item returns an SPListItem object

You can then use SPlistItem["FieldName"] to access each field (see bottom of SPListItem link)

So adding this into your code (this is not tested, but you should get the idea)

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()
策马西风 2024-09-07 05:17:28

还有一个过载,您可以在哈希表中发送您想要添加的元数据。例如:

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);

There is also an overload where you can send in a hashtable with the metadata you want to add. For example:

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文