1

是否可以使用 jquery 代码将文档上传到 SharePoint 文档库?

客户端是否有与 asp:fileupload 等效的控件来选择文件?

这是目标:
1)解决方案应该是我粘贴的代码块;而不是 webpart 或编译的解决方案或应用程序。
2) 而且我不想使用本机 SharePoint 文件上传或编辑表单页面来设置元数据。

创建一个新的 SharePoint aspx 页面,该页面:

  • 使用户能够以特定硬编码用户的身份将选定文件上传到特定 SharePoint 文档库
  • 将文件重命名为一些随机的唯一序列,如果:
  • 该文件尚不存在。
  • 文件必须是特定的文件类型 (pdf)
  • 必须能够为文件设置一些元数据列值

这些链接让我相信这是可能的:

http://msdn.microsoft.com/en-us/library/ms454491(v=office.14).aspx

http://blog.yahoo.com/lamung/articles/91696

通过内置的 Web 服务将文件上传到 SharePoint

我将支付一个可行的解决方案。理想情况下,只有使用 Web 服务的客户端代码。

4

2 回答 2

2

以下代码将 pdf 上传到文档库。这可能对你有一些帮助

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script><script src="/Style%20Library/jquery.SPServices-0.6.2.min.js" type="application/javascript"></script><script src="/Style%20Library/jquery-1.6.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
   function uploadFile() {

    var filePath = "c:\\test.pdf";
    var url= "http://Site/Shared Documents/test.pdf";

    var soapEnv =
    "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> \
        <soap:Body>\
            <CopyIntoItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>\
                <SourceUrl>" + filePath + "</SourceUrl>\
                    <DestinationUrls>\
                        <string> "+ url + "</string>\
                    </DestinationUrls>\
                    <Fields>\
                        <FieldInformation Type='Text' DisplayName='Title' InternalName='Title' Value='Test' />\
                    </Fields>\
                <Stream>base64Binary</Stream>\
            </CopyIntoItems>\
        </soap:Body>\
    </soap:Envelope>";

    $.ajax({
        url: "http://site/_vti_bin/copy.asmx",
        beforeSend: function (xhr) { xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/CopyIntoItems"); },
        type: "POST",
        dataType: "xml",
        data: soapEnv,
        complete: processResult,
        contentType: "text/xml; charset=\"utf-8\""
    });
    alert(soapEnv);
}


function processResult(xData, status) {
    alert("Uploaded SuccessFully");
}
 </script>
<input name="Upload" onclick="uploadFile()" type="button"/>
于 2013-08-16T11:19:17.857 回答
1

你可以用我的两个项目做到这一点:

  1. FileToDataURI:从用户那里读取文件的跨浏览器解决方案(现代浏览器使用 FileAPI,旧浏览器使用 Flash)...它将读取本地文件的内容
  2. SharepointPluscreateFile():将阅读的内容上传到 Sharepoint

我将它用于我的一个 Sharepoint 站点(内部网),它适用于所有浏览器。

于 2013-08-17T13:34:12.840 回答