2
Answers

Files not uploading successfully

Shiv Sharma

Shiv Sharma

6y
939
1

Hi All,

If i uploaded big file in Secondary and small file in primary its upload successfully and till not upload both it wait.

But if Primary control file is big and secondary control file is small then its not upload primary one

Window reload is calling wrong place (Primary is mandatory and secondary is not)

Below code :-

var controle1="N";
var controle2="N";
function onSuccess(){
// alert("in sucess");
// alert('Item created: 100' + newItem.get_id());
ItemID=newItem.get_id();
var elementId1=$("#PERSONAL0id").val();
var elementId2=$("#PERSONAL1id").val();
if(elementId1!="")
{
controle1="Y";
}
if(elementId2!="")
{
controle2="Y";
}
if(controle1=="Y")
{
var Control="P";
var Flag1="1";
uploadMFBySearch(ItemID,Control,Flag1);
}
if(controle2=="Y")
{
var Control="S";
var Flag1="2";
if(document.getElementById("PERSONALSid").files.length > 0){
uploadMFBySearch(ItemID,Control,Flag1);
}
}

function uploadMFBySearch(ItemID,Control,Flag1) {

//debugger;
//alert(ItemID);
var serverRelativeUrlToFolder = 'docLibrary/';
var fileInput = jQuery('#PERSONAL'+Control+'id');
var newName ="mulDoc";
var docType="muldocument";
var filerename="muldocument";
var fileCount = fileInput[0].files.length;
var serverUrl = _spPageContextInfo.webAbsoluteUrl;
var filesUploaded = 0;
for (var i = 0; i < fileCount; i++) {// Initiate method calls using jQuery promises. // Get the local file as an array buffer.
var getFile = getFileBufferMF(i);
getFile.done(function (arrayBuffer, i) { // Add the file to the SharePoint folder.
var addFile = addFileToFolderMF(arrayBuffer, i,ItemID);
addFile.done(function (file, status, xhr) {//Get ID of File uploaded //mFclear();
var getfileID =getItem(file.d.ListItemAllFields.__deferred.uri);//var getfileID =getItem(file.d); //getListItem(file.d.ListItemAllFields.__deferred.uri);//getItem(file.d);
getfileID.done(function (fResult) {
var colObjectMF = new Object();
colObjectMF["DocumentCategory"] = "yo";//var changeItem = updateFileMetadataMF(libraryName, fResult.d, colObject);
var changeItem = updateFileMetadataMF(fResult.d.__metadata,docType,newName,filerename,i,fileInput,ItemID,Control,Flag1);
// alert(newName);
changeItem.done(function (result) {
filesUploaded++;
//alert("HI");
var ReqFormat=100000;
var NewReqNo=ReqFormat+ItemID;
if (fileCount == filesUploaded) {
//alert("All files uploaded successfully");
filesUploaded = 0;
if( document.getElementById("PERSONALSid").files.length == 0){

SavePeople();
$('#pageLoader').hide();
alert("Your request has been successfully submitted! Request No:"+NewReqNo);
window.location.href = "https://ABC.com/sites/MyPortal.aspx";

}
else {
//alert("Before Save People"+DepartmentNew);


SavePeople();
//alert(Flag1);
$('#pageLoader').hide();
if(Flag1=="2"){
alert("Your request has been successfully submitted! Request No:"+NewReqNo);
window.location.href = "https://ABC.com/sites/MyPortal.aspx";
}
}



}
});
changeItem.fail(function (result) {
$('#pageLoader').hide();
alert("An error has occured while submitting request.");
});
}, function () { });
});
addFile.fail(onErrorMF);
});
getFile.fail(onErrorMF);
}




//This function will return the id of item uploaded.
function getItem(fileListItemUri) {
return jQuery.ajax({
url: fileListItemUri,
type: "GET",
headers: { "accept": "application/json;odata=verbose" }
});
}




function getFileBufferMF(i) {// Get the local file as an array buffer.
var deferred = jQuery.Deferred();
var reader = new FileReader();
reader.onloadend = function (e) {deferred.resolve(e.target.result, i);}
reader.onerror = function (e) {deferred.reject(e.target.error);}
reader.readAsArrayBuffer(fileInput[0].files[i]);
return deferred.promise();
}




function addFileToFolderMF(arrayBuffer, i,ItemID) { // Add the file to the file collection in the Shared Documents folder.
var index = i;
fileNameMF1 = fileInput[0].files[index].name;
var ReqFormat=100000;
fileNameMF2=ReqFormat+ItemID+fileNameMF1;
var fileCollectionEndpoint = String.format("{0}/_api/web/getfolderbyserverrelativeurl('{1}')/files/add(overwrite=true, url='{2}')",serverUrl, serverRelativeUrlToFolder, fileNameMF2);
return jQuery.ajax({
url: fileCollectionEndpoint,
type: "POST",
data: arrayBuffer,
//async:false,
processData: false,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"content-length": arrayBuffer.byteLength
}
});

}
}


function onErrorMF(error) {
console.log("mf:"+error.responseText);
//alert("mf:"+error.responseText);
}


function updateFileMetadataMF(item,docType,newName,filerename,i,fileInput,ItemID,Control) {


var ReqFormat=100000;
ItemID1=ReqFormat+ItemID;
var body = String.format("{{'__metadata':{{'type':'{0}'}},'Title':'{1}','DocumentType':'{2}'}}",item.type,ItemID1,Control);
return jQuery.ajax({
url: item.uri,
type: "POST",
//async:false,
data: body,
headers: {
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"content-type": "application/json;odata=verbose",
"content-length": body.length,
"IF-MATCH": item.etag,
"X-HTTP-Method": "MERGE"
}
});
return dfd.promise();


}

---------------------------Attchment control -----------------------------

<div class="col-md-2">
<label for="countries">Primary documents:</label> <span style="color:#de0606;">*</span>
</div>
<div class="col-md-3 files" id="attachFilesHolder">
<!--<input id="file_input" type="file" name="files[]">-->
<input type="file" id="PERSONALPid" class="filestyle" data-icon="" >
</div>


<div class="col-md-2">
<label for="countries">Secondary documents:</label>
</div>
<div class="col-md-3 files" id="attachFilesHolder2">
<!--<input id="file_input" type="file" name="files[]">-->
<input type="file" id="PERSONALSid" class="filestyle" data-icon="" multiple="multiple">
</div>

 

Its issue of page load window.location.href

As its after upload of any one of them window.location.href will called, so need to call in that way it will call accordingly.

Can you please go through this code and check primary big 7-10 mb file and secondary KB file and see it will not upload primary file as it load as upload secondary file.

 
Answers (2)
3
Dharmeshwaran S

Dharmeshwaran S

384 4.1k 87.9k Jun 12

So 15 years is very long gap. But still if you are very strong in the technology i.e. asp.net you should know from basics to advanced level(or atleast intermediate level)
Also in the interview you should have the proper reason for the long gap

You can expect around 40k initially.

Accepted
2
Sreekanth Reddy

Sreekanth Reddy

346 4.9k 431.4k Jun 13

To be knowledge with:

1) C#

2)Web Developement skill in MVC or .Net Core

3)WEB API

4)SQL Server

5)Azure