是否可以使用jquery将文件上载到SharePoint Doc库?

时间:2013-08-16 08:57:59

标签: c# jquery web-services rest sharepoint

是否可以使用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

Upload a file to SharePoint through the built-in web services

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

2 个答案:

答案 0 :(得分: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"/>

答案 1 :(得分:1)

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

  1. FileToDataURI:一种跨浏览器解决方案,用于从用户读取文件(使用适用于现代浏览器的FileAPI和适用于旧浏览器的Flash)...它将读取本地文件的内容
  2. SharepointPlus createFile():将阅读内容上传到Sharepoint
  3. 我将它用于我的一个Sharepoint站点(intranet),它适用于所有浏览器。