This post going to describe that how to create a Folder(Main Folder) within a Document Library and create a Sub Folder within Main Folder and upload files to Sub Folder.
private void UploadContractDocuments(string paraMainFolderName, string paraSubFolderName,
string paraContractNumber, DateTime paraStartDate, DateTime paraEndDate)
{
try
{
string mainFolderName = paraMainFolderName;
string subFolderName = paraSubFolderName;
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
site.AllowUnsafeUpdates = false;
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
//Check whether file upload control contains a file
if (ContractFileUpload.HasFile)
{
SPDocumentLibrary documentLibrary = web.Lists["ContractDocuments"] as SPDocumentLibrary;
string FolderPath = documentLibrary.RootFolder.Url + "/" + mainFolderName;//Main folder path
string SubFolderPath = documentLibrary.RootFolder.Url + "/" + mainFolderName + "/" + subFolderName;//Sub folder path
//Check whether main folder already exist
if (!web.GetFolder(FolderPath).Exists)
{
//Create main folder if not exist
SPListItem newFolder = documentLibrary.Items.Add("", SPFileSystemObjectType.Folder, mainFolderName);
newFolder.Update();
//Create sub folder inside main folder
string subFolderUrl = web.Url + "/" + newFolder.Url;
SPListItem subFolder1 = documentLibrary.Items.Add(subFolderUrl, SPFileSystemObjectType.Folder, subFolderName.ToString());
subFolder1.Update();
}
else
{
//Check for subfolder if main folder is already exist
if (!web.GetFolder(SubFolderPath).Exists)
{
//Create sub folder if not exist
string subFolderUrl = FolderPath;
SPListItem subFolder1 = documentLibrary.Items.Add(subFolderUrl, SPFileSystemObjectType.Folder, subFolderName.ToString());
subFolder1.Update();
}
}
Stream fStream = RequestModuleFileUpload.PostedFile.InputStream;
byte[] _byteArray = new byte[fStream.Length];
fStream.Read(_byteArray, 0, (int)fStream.Length);
fStream.Close();
string fileName = RequestModuleFileUpload.PostedFile.FileName;
string _fileUrl = documentLibrary.RootFolder.Url + "/" + mainFolderName + "/" + subFolderName + "/" + Path.GetFileNameWithoutExtension(fileName) + Path.GetExtension(fileName);
bool IsOverwriteFile = true;
//Create meta data
var docMetadata = new Hashtable {
{ "ContractNumber", paraContractNumber },
{ "StartDate", paraStartDate},
{ "EndDate", paraEndDate }
};
SPFile file = documentLibrary.RootFolder.Files.Add(_fileUrl, _byteArray, docMetadata, IsOverwriteFile);
SPListItem item = file.Item;
file.Update();
documentLibrary.Update();
}
}
}
}
catch (Exception)
{
throw;
}
}
Showing posts with label DocumentLibrary. Show all posts
Showing posts with label DocumentLibrary. Show all posts
Sunday, October 4, 2015
Saturday, August 15, 2015
Uplaod Files to SharePoint Document Library with Meta Data using ECMA Script
Uplaod files to SharePoint document library using ECMA script (javascript client object model) :
UploadDocuments = function () {
if (!window.FileReader) {
alert("Browser does not support the HTML5 File APIs");
return;
}
var call = getDocument();
call.done(function (buffer, fileName) {
var call2 = uploadDocument(buffer, fileName);
call2.done(function (data, textStatus, jqXHR) {
var call3 = getItem(data.d);
call3.done(function (data, textStatus, jqXHR) {
var item = data.d;
var call4 = getCurrentUser();
call4.done(function (data, textStatus, jqXHR) {
var userId = data.d.CurrentUser.Id;
var call5 = updateItemFields(item, userId);
call5.done(function (data, textStatus, jqXHR) {
var div = jQuery("#msg");
div.text("Item added");
});
call5.fail(failHandler);
});
call4.fail(failHandler);
});
call3.fail(failHandler);
});
call2.fail(failHandler);
});
call.fail(function (errorMessage) {
alert(errorMessage);
});
function getDocument() {
var def = new jQuery.Deferred();
var element = document.getElementById("fileIdCard");
var file = element.files[0];
var parts = element.value.split("\\");
var fileName = parts[parts.length - 1];
var reader = new FileReader();
reader.onload = function (e) {
def.resolve(e.target.result, fileName);
}
reader.onerror = function (e) {
def.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return def.promise();
}
function uploadDocument(buffer, fileName) {
var url = String.format("{0}/_api/Web/Lists/getByTitle('ID Card Attachments')/RootFolder/Files/Add(url='{1}', overwrite=true)",
_spPageContextInfo.webAbsoluteUrl, fileName);
//alert(url);
var call = jQuery.ajax({
url: url,
type: "POST",
data: buffer,
processData: false,
headers: {
Accept: "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"Content-Length": buffer.byteLength
}
});
return call;
}
function getItem(file) {
var call = jQuery.ajax({
url: file.ListItemAllFields.__deferred.uri,
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
return call;
}
function GetItemTypeForListName(name) {
return "SP.Data." + name.charAt(0).toUpperCase() + name.slice(1) + "ListItem";
}
function getCurrentUser() {
var call = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/?$select=CurrentUser/Id&$expand=CurrentUser/Id",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
return call;
}
function updateItemFields(item, userId) {
var itemType = GetItemTypeForListName('ID Card Attachments');
//alert(itemType);
var now = new Date();
var call = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl +
"/_api/Web/Lists/getByTitle('ID Card Attachments')/Items(" +
item.Id + ")",
type: "POST",
data: JSON.stringify({
'__metadata': { 'type': 'SP.Data.IdCardAttachmentsItem' },
'Employee Type': '' + "Permanant"
}),
headers: {
Accept: "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"IF-MATCH": item.__metadata.etag,
"X-Http-Method": "MERGE"
}
});
return call;
}
}
failHandler = function (jqXHR, textStatus, errorThrown) {
var response = JSON.parse(jqXHR.responseText);
var message = response ? response.error.message.value : textStatus;
alert("Call failed. Error: " + message);
}
onQuerySuccess = function () {
alert("Success.!");
}
onQueryFail = function (sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
UploadDocuments = function () {
if (!window.FileReader) {
alert("Browser does not support the HTML5 File APIs");
return;
}
var call = getDocument();
call.done(function (buffer, fileName) {
var call2 = uploadDocument(buffer, fileName);
call2.done(function (data, textStatus, jqXHR) {
var call3 = getItem(data.d);
call3.done(function (data, textStatus, jqXHR) {
var item = data.d;
var call4 = getCurrentUser();
call4.done(function (data, textStatus, jqXHR) {
var userId = data.d.CurrentUser.Id;
var call5 = updateItemFields(item, userId);
call5.done(function (data, textStatus, jqXHR) {
var div = jQuery("#msg");
div.text("Item added");
});
call5.fail(failHandler);
});
call4.fail(failHandler);
});
call3.fail(failHandler);
});
call2.fail(failHandler);
});
call.fail(function (errorMessage) {
alert(errorMessage);
});
function getDocument() {
var def = new jQuery.Deferred();
var element = document.getElementById("fileIdCard");
var file = element.files[0];
var parts = element.value.split("\\");
var fileName = parts[parts.length - 1];
var reader = new FileReader();
reader.onload = function (e) {
def.resolve(e.target.result, fileName);
}
reader.onerror = function (e) {
def.reject(e.target.error);
}
reader.readAsArrayBuffer(file);
return def.promise();
}
function uploadDocument(buffer, fileName) {
var url = String.format("{0}/_api/Web/Lists/getByTitle('ID Card Attachments')/RootFolder/Files/Add(url='{1}', overwrite=true)",
_spPageContextInfo.webAbsoluteUrl, fileName);
//alert(url);
var call = jQuery.ajax({
url: url,
type: "POST",
data: buffer,
processData: false,
headers: {
Accept: "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"Content-Length": buffer.byteLength
}
});
return call;
}
function getItem(file) {
var call = jQuery.ajax({
url: file.ListItemAllFields.__deferred.uri,
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
return call;
}
function GetItemTypeForListName(name) {
return "SP.Data." + name.charAt(0).toUpperCase() + name.slice(1) + "ListItem";
}
function getCurrentUser() {
var call = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/?$select=CurrentUser/Id&$expand=CurrentUser/Id",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
return call;
}
function updateItemFields(item, userId) {
var itemType = GetItemTypeForListName('ID Card Attachments');
//alert(itemType);
var now = new Date();
var call = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl +
"/_api/Web/Lists/getByTitle('ID Card Attachments')/Items(" +
item.Id + ")",
type: "POST",
data: JSON.stringify({
'__metadata': { 'type': 'SP.Data.IdCardAttachmentsItem' },
'Employee Type': '' + "Permanant"
}),
headers: {
Accept: "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"IF-MATCH": item.__metadata.etag,
"X-Http-Method": "MERGE"
}
});
return call;
}
}
failHandler = function (jqXHR, textStatus, errorThrown) {
var response = JSON.parse(jqXHR.responseText);
var message = response ? response.error.message.value : textStatus;
alert("Call failed. Error: " + message);
}
onQuerySuccess = function () {
alert("Success.!");
}
onQueryFail = function (sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Subscribe to:
Posts (Atom)