2013-08-16 58 views
1

是否可以使用jQuery代碼將文檔上傳到SharePoint文檔庫?是否有可能通過jQuery將文件上傳到SharePoint Doc庫?

是否有相應的控制,以ASP:文件上傳在客戶端上選擇文件?

這裏的目標是:
1)解決方案應該是我粘貼的代碼塊;而不是一個web部件或編譯的解決方案或應用程序。
2)我不想使用本地SharePoint文件上傳或editform頁面來設置元數據。

創建新的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

下面的代碼上傳了一個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"/> 
+0

你確定嗎?我用Firefox測試和文件被創建到文檔共享庫,但它包含1KB時,我的原始文件是15KB,且內容已損壞...... – AymKdn

1

你可以用我的兩個項目做到這一點:

  1. FileToDataURI:一個跨瀏覽器的解決方案來讀取用戶文件(FileAPI爲對於舊的瀏覽器的現代瀏覽器和Flash)......它會讀取本地文件的內容
  2. SharepointPlus createFile():上傳的閱讀內容到SharePoint

我將它用於我的一個Sharepoint站點(Intranet),它適用於所有瀏覽器。

+0

這纔是真正正確的答案。 SharepointPlus非常棒。 – AaronBaker

相關問題