【问题标题】:File upload with metadata using SharePoint Web Services使用 SharePoint Web Services 上传带有元数据的文件
【发布时间】:2011-06-17 17:31:04
【问题描述】:

我尝试使用 SharePoint Web Services 上传包含元数据的文件。我采用的第一种方法是使用 WebRequest/WebResponse 对象,然后使用 Lists.asmx - UpdateListItems 方法更新元数据。这工作得很好,但它创建了两个版本的文件。我采用的第二种方法是使用 Copy.asmx Web 服务并使用 CopyIntoItems 方法将文件数据与元数据一起复制。这可以正常工作并创建 v 1.0,但是当我尝试上传相同的文件并在元数据中进行一些更改(使用 Copy.asmx)时,它不会更新任何内容。有没有人遇到过同样的问题或有其他想法来实现所需的功能。

谢谢, 基兰

【问题讨论】:

  • 您使用的是 SharePoint 2007 还是 2010?
  • 我们使用的是 SharePoint 2010。

标签: sharepoint sharepoint-2010


【解决方案1】:

这可能有点话题(抱歉),但我想建议您在远程使用 SharePoint 时使用真正节省时间的快捷方式,http://www.bendsoft.com/net-sharepoint-connector/

它使您能够使用 SQL 和存储过程来处理 SharePoint 列表和文档库。

将文件作为字节数组上传

...
string sql = "CALL UPLOAD('Shared Documents', 'Images/Logos/mylogo.png', @doc)";

byte[] data = System.IO.File.ReadAllBytes("C:\\mylogo.png");
SharePointCommand cmd = new SharePointCommand(sql, myOpenConnection);
cmd.Parameters.Add("@doc", data);

cmd.ExecuteNonQuery();
...

上传流输入

using (fs == System.IO.File.OpenRead("c:\\150Mb.bin")) {
    string sql = "CALL UPLOAD('Shared Documents', '150Mb.bin', @doc)";
    SharePointCommand cmd = new SharePointCommand(sql, myOpenConnection);
    cmd.Parameters.Add("@doc", fs);
    cmd.ExecuteNonQuery();
}

有很多方法可以简化远程文档管理

UPLOAD(lisname, filename, data)
DOWNLOAD(listname, filename)
MOVE(listname1, filename1, listname2, filename2)
COPY(listname1, filename1, listname2, filename2)
RENAME(listname, filename1, filename2)
DELETE(listname, filename)
CREATEFOLDER(listname, foldername)
CHECKOUT(list, file, offline, lastmodified)
CHECKIN(list, file, comment, type)
UNDOCHECKOUT(list, file)

干杯

【讨论】:

  • 我真的不想在你描述的工具上花钱,但我必须说 - 我真的很喜欢解决问题的替代方法。该工具完全避开了所有 Web 服务身份验证内容(假设使用 SP Web 服务)...
猜你喜欢
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多