SharePoint上传文件

一、使用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)

 

转载于:https://www.cnblogs.com/Q-lucia/p/4092270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值