SharePoint上傳檔案

來源:互聯網
上載者:User

標籤:style   io   ar   os   使用   sp   for   檔案   div   

一、使用JS上傳到Document

<%--html代碼部分,使用konckout,記得要在頁面上綁定--%>

<%--在本頁綁定konockout--%>

var IBDModel = new Akmii.OTIS.China.Workflow.IBDModel();
ko.applyBindings(uploadModels.uploadModel );

<label class="ak-left ak-proplatform-rcontent-row-label" style="line-height: 25px;margin-right: 5px;">選擇檔案</label>
<input type="file" style="display: inline-block;" class="ak-left ak-proplatform-upload-input" id="DocList" data-bind="value: $root.Field_AttachmentName" />
<div class="ak-left ak-proplatform-attinfo-inline-upload" >
<a href="#" data-bind="click: $root.UploadDocuments"><span class="ak-left">上傳</span></a>

 

<%--上傳部分的代碼--%>

var FileUploadHelper = window.FileUploadHelper || {};

FileUploadHelper.Libs = function () {
/*//BosKat 2014-08-04 Mon Start add
Flag 是為檔案名稱添加時間的參數
1 表示添加時間
否則,表示什麼都不傳送
*/
var upload = function (FileInfo, fileInput, serverRelativeUrl, flag) {
//alert("1");
var file = fileInput[0].files[0];
//alert(file.name);
//var serverRelativeUrl = "Lists/Documents";
//BosKat 2014-08-04 Mon Start modify
//為了保證Attachment 的filePath 和 Document 的Name相對應
//達到能夠進行文檔的重複上傳工作,通過目前時間解決
if (flag == 1) {
var tmpFileName = file.name;
var extName = tmpFileName.substring(tmpFileName.lastIndexOf("."));
var fileName = tmpFileName.substring(0, tmpFileName.lastIndexOf("."));
var time = new Date().format("yyyy_MM_dd_hh_mm_ss").toString();
FileInfo.fileName = fileName + "_" + time + extName;
}
else {
FileInfo.fileName = file.name;
}
var fileName = encodeURI(file.name);
FileInfo.fileUrl = encodeURI("/" + serverRelativeUrl + "/" + fileName);
var deferred = $.Deferred();
getFileBuffer(file).then(function (arrayBuffer) {
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl +
"/_api/web/GetFolderByServerRelativeUrl(‘" + serverRelativeUrl + "‘)/Files" +
"/Add(url=‘" + encodeURI(FileInfo.fileName)+ "‘, overwrite=true)",
type: "POST",
data: arrayBuffer,
processData: false,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-length": arrayBuffer.byteLength
},
success: function (data) {
deferred.resolve(data);
},
error: function (err) {
deferred.reject(err);
}
});
},
function (err) {
deferred.reject(err);
}
);

return deferred.promise();
},

getFileBuffer = function (file) {
var deferred = $.Deferred();
var reader = new FileReader();
reader.onload = function (e) {
deferred.resolve(e.target.result);
}
reader.onerror = function (e) {
deferred.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return deferred.promise();
};
return {
upload: upload
};
}();

<%--調用上傳代碼--%>

(function (namespace) {

    var uploadModel = function(){

      //調用上傳方法並返回一個data值

   FileUploadHelper.Libs.upload(FileInfo, fileInput, "Shared Documents", 1).then(function (data) {}

      

}

})(uploadModels)

 

SharePoint上傳檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.