The CreatorCon Call for Content is officially open! Get started here.

uploadAttachment return null object

User673228
Kilo Expert

Hi. I have this script : 

$scope.attachFile = function(files, $event) {
  var e = $event.currentTarget;
  console.dir("value e : " + e.value);
  if (e) {
    e.value = '';
  }
  console.log("files[0]");
  console.dir(files[0]);
		
  console.log("snAttachmentHandler before");
  console.dir(snAttachmentHandler);
	
  var sna = snAttachmentHandler.create('myUserTable', $scope.data.elementSysId);

  console.log("snAttachmentHandler after");
  console.dir(sna);

  sna.uploadAttachment(files[0]).then(function (response) {

  console.log("sna.uploadAttachment");
  console.dir(sna);
			 
  console.log("response");
  console.dir(response);
			 
     var fName = response.file_name;

     console.log("fname");
     console.log(fName);

     if (fName.indexOf('inp_') != 0) {
       fName = "inp_" + fName;
       snAttachmentHandler.renameAttachment(response.sys_id, fName).then(function (response) {
           var nah = $scope.attachmentHandler = new nowAttachmentHandler(setAttachments, function () { });
           nah.setParams('myUserTable', $scope.data.elementSysId, 1024 * 1024 * 24 /*24MB*/);
           function setAttachments(attachments, action) {
               $scope.attachments = attachments;
               $scope.data.attachmentList = attachments;
           }
           $scope.attachmentHandler.getAttachmentList();
       });
     }
   });
};

But i get an error, always the same : TypeError: Cannot read property 'indexOf' of undefined

I use the same script in another widget, and everythings work fine... Somebody can help?

 

[EDIT]

This is the console log result : 

find_real_file.png

1 ACCEPTED SOLUTION

User673228
Kilo Expert

I found the problem... I didn't have enough right on my table to allow the user to insert an attachment. So I've add the right WRITE to my table.

View solution in original post

10 REPLIES 10

Ajaykumar1
Tera Guru

Hi,

Not sure, but try printing the value of fName and value fetched by fName.indexOf('inp_').

'inp_' is either not defined or is not available in current scope.

Regards,
Ajay

Thanks for your answer. 

but the problem is : the variable "response" after uploadAttachment is empty, so the fname is empty too.

"inp_" is just a suffit I checked to know if it's already in the file name to not create a file with : inp_inp_myfile.pdf

It's look like the uploadAttachment dosn't work at all

The array : "files[0]" is correct with the file attached to it.

 

Any ideas?

 

 

Hi 

Have you tried printing console.log(files[0])? 

Hi,

Yes, same result than the "console.dir(files[0])". 😉 I've edited my quesiton with more information and many console.log.