将文件上载到Sharepoint 2013中的文档库 [英] Uploading a File to Document Library in Sharepoint 2013

查看:67
本文介绍了将文件上载到Sharepoint 2013中的文档库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

专家

当前,我在将文件上传到文件夹或收集站点内的文档库时遇到问题.我总是会收到以下错误消息,请在下面找到屏幕截图

Currently i am facing issue while uploading a file to a folder or to a Document Library inside a Collection Site . I always get the below error , please find the screenshot below 

a)概述网站集和文档库的结构以及我要将文件上传到的文件夹

a) Scrrenshot of the structure of Site collection and Document Library and the Folder into which i want to upload the file

b)我尝试上传文件时浏览器中显示的错误的屏幕截图

b) Screenshot of the Error seen in browser while i try to upload the file

	var uploadFileCrossSite = function (file, webUrl) {
	

	

				var digest = "0xF4623DB3F5D01A407E81F5D30D9BF2A3FC3418C60BCDA6E78944FBCBAC39125BC6D0F7867D63F561D52204857D7DC2556C9A1230B8A44EDFFA22EBE9B47403C2,24 May 2017 12:23:48 -0000";
				var libraryName = "DocTest";

				var reader = new FileReader();
				var arrayBuffer;

				reader.onload = function (e) {
					arrayBuffer = reader.result;
					           
				console.log("arrayBuffer"+arrayBuffer);
					jQuery.ajax({
			
					 
						url: webUrl + "/_api/web/Getfolderbyserverrelativeurl('/DocTest/Folder1')/Files/Add(url='" + file.name + "',overwrite=true)",
						type: "POST",
						data: arrayBuffer,
						headers: {
							"Accept": "application/json; odata=verbose",
							"X-RequestDigest": digest
						},
						contentType: "application/json;odata=verbose",
						processData: false,
						success: function () {
						  jQuery('#lblResult').text("Successfully uploaded file to different site.");
						  if (currentDlg != null) {
			                  currentDlg.close();
			                  }
						},
						error: function () {
						  jQuery('#lblResult').text("Error uploading file to different site.");
						  if (currentDlg != null) {
			                  currentDlg.close();
			                  }

						}
					});
				};

				reader.readAsArrayBuffer(file);

			

对于解决相同问题的任何帮助,我们深表感谢.

Any help on how to resolve the same is most appreciated .

推荐答案

嗨NischalKN,

Hi NischalKN,

在您的代码中,将jQuery.ajax()中的"/DocTest/Folder1"更改为"/as/DocTest/Folder1".

In your code, change '/DocTest/Folder1' to '/as/DocTest/Folder1' in jQuery.ajax().

一个演示供您参考:

<script src="//code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
function uploadFile(){

	// Define the folder path for this example.
	var serverRelativeUrlToFolder = '/as/DocTest/Folder1';
	// Get test values from the file input and text input page controls.
	var fileInput =


('#getFile'); //使用jQuery Promise启动方法调用. //获取本地文件作为数组缓冲区. var getFile = getFileBuffer(); getFile.done(function(arrayBuffer){ //将文件添加到SharePoint文件夹. var addFile = addFileToFolder(arrayBuffer); addFile.done(function(file,status,xhr){ 警报(添加成功"); }); addFile.fail(onError); }); getFile.fail(onError); //获取本地文件作为数组缓冲区. 函数getFileBuffer(){ var deferred = jQuery.Deferred(); var reader = new FileReader(); reader.onloadend =函数(e){ deferred.resolve(e.target.result); } reader.onerror =函数(e){ deferred.reject(e.target.error); } reader.readAsArrayBuffer(fileInput [0] .files [0]); 返回deferred.promise(); } //将文件添加到共享文档"文件夹中的文件集合中. 函数addFileToFolder(arrayBuffer){ //从页面上的文件输入控件获取文件名. var parts = fileInput [0] .value.split('\\'); var fileName = parts [parts.length-1]; //构造端点. var fileCollectionEndpoint = String.format( "{0}/_ api/web/getfolderbyserverrelativeurl('{1}')/files" + "/add(overwrite = true,url ='{2}')',_spPageContextInfo.webAbsoluteUrl,serverRelativeUrlToFolder,fileName); //发送请求并返回响应. //此调用返回SharePoint文件. return
('#getFile'); // Initiate method calls using jQuery promises. // Get the local file as an array buffer. var getFile = getFileBuffer(); getFile.done(function (arrayBuffer) { // Add the file to the SharePoint folder. var addFile = addFileToFolder(arrayBuffer); addFile.done(function (file, status, xhr) { alert("Add succeeded"); }); addFile.fail(onError); }); getFile.fail(onError); // Get the local file as an array buffer. function getFileBuffer(){ var deferred = jQuery.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(fileInput[0].files[0]); return deferred.promise(); } // Add the file to the file collection in the Shared Documents folder. function addFileToFolder(arrayBuffer){ // Get the file name from the file input control on the page. var parts = fileInput[0].value.split('\\'); var fileName = parts[parts.length - 1]; // Construct the endpoint. var fileCollectionEndpoint = String.format( "{0}/_api/web/getfolderbyserverrelativeurl('{1}')/files" + "/add(overwrite=true, url='{2}')", _spPageContextInfo.webAbsoluteUrl, serverRelativeUrlToFolder, fileName); // Send the request and return the response. // This call returns the SharePoint file. return


.ajax({ 网址:fileCollectionEndpoint, 类型:"POST", 数据:arrayBuffer, processData:否, 标头:{ "accept":"application/json; odata = verbose", "X-RequestDigest":jQuery("#__ REQUESTDIGEST").val(), 内容长度":arrayBuffer.byteLength } }); } //显示错误消息. 函数onError(错误) { alert(error.responseText); } } </script> < input id =" getFile" type =文件"/> < input id =" addFileButton" type ="button" value =上传" onclick ="uploadFile()"/>
.ajax({ url: fileCollectionEndpoint, type: "POST", data: arrayBuffer, processData: false, headers: { "accept": "application/json;odata=verbose", "X-RequestDigest": jQuery("#__REQUESTDIGEST").val(), "content-length": arrayBuffer.byteLength } }); } // Display error messages. function onError(error) { alert(error.responseText); } } </script> <input id="getFile" type="file"/> <input id="addFileButton" type="button" value="Upload" onclick="uploadFile()"/>

谢谢

温迪


这篇关于将文件上载到Sharepoint 2013中的文档库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆