SPServices介绍之六:上传附件

来源:互联网 发布:店铺淘宝客怎么做 编辑:程序博客网 时间:2024/06/06 14:19

在上一章SPServices介绍之五中介绍了如何使用SPServices启动工作流,这篇文章介绍一下如何使用SPServices来上传附件。我是参考了以下两篇文章:

How to: Upload a file by using the REST API and jQuery

Uploading Attachments to SharePoint Lists Using SPServices

文章中讲的很细,所以这里直接上代码了,新建一个application page,然后把下面的代码粘贴到对应的PageHead和Main这两个place holder中,部署之后运行即可。

需要注意的有两个地方,第一个是需要引用sp.runtime.js文件,另外需要浏览器支持HTML5.

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>    <script type="text/javascript" src="jquery.spservices-2014.01.min.js"></script>    <script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>    <script type="text/javascript">        $(document).ready(function(){            $("#uploadfilebutton").on("click", function () {                if ($("#fileuploader").prop("files").length === 0) {                    alert("Please select file first");                    return;                }                if (!window.FileReader)                {                    alert("Browser does not support HTML5");                    return;                }                var parts = $("#fileuploader").prop("value").split("\\");                var fileName = parts[parts.length - 1];                var file = $("#fileuploader").prop("files")[0];                //Get the local file as an array buffer                var getFileBuffer = function (file) {                    var deferred = $.Deferred();                    var reader = new FileReader();                    reader.onloadend = function (e) {                        deferred.resolve(e.target.result);                    }                    reader.onerror = function (e) {                        deferred.reject(e.target.error);                    }                    reader.readAsArrayBuffer(file);                    return deferred.promise();                }                getFileBuffer(file).then(function (buffer) {                    var bytes = new Uint8Array(buffer);                    var content = new SP.Base64EncodedByteArray();                     for (var i = 0; i < bytes.length; i++) {                        content.append(bytes[i]);                    }                    $().SPServices({                        operation: "AddAttachment",                        listName: "Tasks",                        listItemID: 1,                        fileName: fileName,                        attachment: content.toBase64String(),                        completefunc: function (xData, Status) {                            if (Status === "success") {                                alert("Upload successfully.");                            }                            else {                                alert("Upload failed.");                            }                        }                    });                });            });        });    </script></asp:Content><asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">    <input type="file" id="fileuploader" />    <input type="button" id="uploadfilebutton" value="Upload File" /></asp:Content>

下一篇文章SPServices介绍之七将会介绍如何使用SPServices实现智能提示功能。

0 0
原创粉丝点击