Hi Friends ...Today i'm going to explain how to upload files in Sharepoint sandbox solution using SPservice.js.
The below examples in this article use the SPservice.js sharepoint spapi file and some default jQuery files to add a local file to the Documents library .
The First thing need to set jquery reference files in your page (u need to download & add spservice file inside style library)
<script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
<script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js'></script>
<script type="text/javascript" src='/Style%20Library/jquery.SPServices-0.7.2.js'></script>
second thing need to set up control for selecting files from webpage,this is pretty simple use if input file control and asp server button control and calling function in order to upload file.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="/Style%20Library/jquery.SPServices-0.7.2.js"></script>
<script type="text/javascript">
function FileUploadFunction() {
var input, file, fr;
if (typeof window.FileReader !== 'function') { alert("The file API isn't supported on this browser yet."); return; }
input = document.getElementById('fileinput');
if (!input) { alert("couldn't find the fileinput element.");}
else if (!input.files) { alert("This browser doesn't seem to support the `files` property of file inputs."); }
else if (!input.files[0]) { alert("Please select a file before clicking 'Load'"); }
else { file = input.files[0];
var 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();
};
getFileBuffer(file).then(function (buffer) {
var bytes = new Uint8Array(buffer);
var strt = base64ArrayBuffer(buffer);
var path = document.getElementById("fileinput").value;
var fileName = path.substr(path.lastIndexOf("\\") + 1, path.length);
var weburl = "https://server/";
var source = path;
var Stream = strt;
var Desturl = ["https://server/Shared%20Documents/" + fileName + ""];
var now = new Date;
$().SPServices({
operation: "CopyIntoItems",
webURL: weburl,
async: false,
SourceUrl: source,
Stream: Stream,
DestinationUrls: Desturl,
completefunc: function (xData, Status) {
debugger;
alert("Status=" + Status + " XML=" + xData.responseXML.xml);
}
});
return true;
});}}
function base64ArrayBuffer(arrayBuffer) {
var base64 = ''
var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
var bytes = new Uint8Array(arrayBuffer)
var byteLength = bytes.byteLength
var byteRemainder = byteLength % 3
var mainLength = byteLength - byteRemainder
var a, b, c, d
var chunk
// Main loop deals with bytes in chunks of 3
for (var i = 0; i < mainLength; i = i + 3) {
// Combine the three bytes into a single integer
chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]
// Use bitmasks to extract 6-bit segments from the triplet
a = (chunk & 16515072) >> 18 // 16515072 = (2^6 - 1) << 18
b = (chunk & 258048) >> 12 // 258048 = (2^6 - 1) << 12
c = (chunk & 4032) >> 6 // 4032 = (2^6 - 1) << 6
d = chunk & 63 // 63 = 2^6 - 1
// Convert the raw binary segments to the appropriate ASCII encoding
base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]
}
// Deal with the remaining bytes and padding
if (byteRemainder == 1) {
chunk = bytes[mainLength]
a = (chunk & 252) >> 2 // 252 = (2^6 - 1) << 2
// Set the 4 least significant bits to zero
b = (chunk & 3) << 4 // 3 = 2^2 - 1
base64 += encodings[a] + encodings[b] + '=='
} else if (byteRemainder == 2) {
chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]
a = (chunk & 64512) >> 10 // 64512 = (2^6 - 1) << 10
b = (chunk & 1008) >> 4 // 1008 = (2^6 - 1) << 4
// Set the 2 least significant bits to zero
c = (chunk & 15) << 2 // 15 = 2^4 - 1
base64 += encodings[a] + encodings[b] + encodings[c] + '='
}
return base64
}
</script>
<input type="file" id="fileinput"/>
<button onclick="FileUploadFunction()">Load</button>
---------------------------------------------------------------------------------------------------------
Just copy the above code will work ..... Please give your valuable feedback for the above post
in below comment box..it will help others also ..
Note
The below examples in this article use the SPservice.js sharepoint spapi file and some default jQuery files to add a local file to the Documents library .
The First thing need to set jquery reference files in your page (u need to download & add spservice file inside style library)
<script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
<script type="text/javascript" src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js'></script>
<script type="text/javascript" src='/Style%20Library/jquery.SPServices-0.7.2.js'></script>
second thing need to set up control for selecting files from webpage,this is pretty simple use if input file control and asp server button control and calling function in order to upload file.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="/Style%20Library/jquery.SPServices-0.7.2.js"></script>
<script type="text/javascript">
function FileUploadFunction() {
var input, file, fr;
if (typeof window.FileReader !== 'function') { alert("The file API isn't supported on this browser yet."); return; }
input = document.getElementById('fileinput');
if (!input) { alert("couldn't find the fileinput element.");}
else if (!input.files) { alert("This browser doesn't seem to support the `files` property of file inputs."); }
else if (!input.files[0]) { alert("Please select a file before clicking 'Load'"); }
else { file = input.files[0];
var 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();
};
getFileBuffer(file).then(function (buffer) {
var bytes = new Uint8Array(buffer);
var strt = base64ArrayBuffer(buffer);
var path = document.getElementById("fileinput").value;
var fileName = path.substr(path.lastIndexOf("\\") + 1, path.length);
var weburl = "https://server/";
var source = path;
var Stream = strt;
var Desturl = ["https://server/Shared%20Documents/" + fileName + ""];
var now = new Date;
$().SPServices({
operation: "CopyIntoItems",
webURL: weburl,
async: false,
SourceUrl: source,
Stream: Stream,
DestinationUrls: Desturl,
completefunc: function (xData, Status) {
debugger;
alert("Status=" + Status + " XML=" + xData.responseXML.xml);
}
});
return true;
});}}
function base64ArrayBuffer(arrayBuffer) {
var base64 = ''
var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
var bytes = new Uint8Array(arrayBuffer)
var byteLength = bytes.byteLength
var byteRemainder = byteLength % 3
var mainLength = byteLength - byteRemainder
var a, b, c, d
var chunk
// Main loop deals with bytes in chunks of 3
for (var i = 0; i < mainLength; i = i + 3) {
// Combine the three bytes into a single integer
chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]
// Use bitmasks to extract 6-bit segments from the triplet
a = (chunk & 16515072) >> 18 // 16515072 = (2^6 - 1) << 18
b = (chunk & 258048) >> 12 // 258048 = (2^6 - 1) << 12
c = (chunk & 4032) >> 6 // 4032 = (2^6 - 1) << 6
d = chunk & 63 // 63 = 2^6 - 1
// Convert the raw binary segments to the appropriate ASCII encoding
base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]
}
// Deal with the remaining bytes and padding
if (byteRemainder == 1) {
chunk = bytes[mainLength]
a = (chunk & 252) >> 2 // 252 = (2^6 - 1) << 2
// Set the 4 least significant bits to zero
b = (chunk & 3) << 4 // 3 = 2^2 - 1
base64 += encodings[a] + encodings[b] + '=='
} else if (byteRemainder == 2) {
chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]
a = (chunk & 64512) >> 10 // 64512 = (2^6 - 1) << 10
b = (chunk & 1008) >> 4 // 1008 = (2^6 - 1) << 4
// Set the 2 least significant bits to zero
c = (chunk & 15) << 2 // 15 = 2^4 - 1
base64 += encodings[a] + encodings[b] + encodings[c] + '='
}
return base64
}
</script>
<input type="file" id="fileinput"/>
<button onclick="FileUploadFunction()">Load</button>
---------------------------------------------------------------------------------------------------------
Just copy the above code will work ..... Please give your valuable feedback for the above post
in below comment box..it will help others also ..
Note
- need to give SPservice jquery reference in your page in order to run the above code.
- need to change site url and document library url in FileUploadFunction function
No comments:
Post a Comment