標籤: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上傳檔案