Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

How to Upload a file using Webapp Adobe Campaign?

srikanthr646926
Level 2
Level 2

Hello,

     I am trying to Create WebApp for Support team, where we handle new requests. I am trying to add Upload File by linking fileRes to Custom table I created, Unfortunately it is showing error when click the Storage option.Vipul Raghavmarcel.gent.86​ Can you guys help me on this.

Thanks

Srikanth

13 Replies
Marcel_Szimonisz
Community Advisor
Community Advisor

Hello srikanthr81596981​,

why not use functionality which is already there?

  1. Web app form with file upload
  2. Save file to public resources
  3. Link public resource to your custom table

1.

choose context variable (eg ctx.vars.file) to save your file from form

2-3 step:

See any file res  xml to know what to save

ctx.vars.file -->has e.g @md5, @originalName.

//create all fields you want to save

//create xml

var fileResXml = <fileRes contentType={contentType}

              internalName={intName} label={originalName} md5={md5Var}

             name={destFileName} originalName={originalName}

             xtkschema="xtk:fileRes"><folder id={folderId}/></fileRes>;

//create file res obj

var fileResObj = xtk.fileRes.create(fileResXml);

//publish

fileResobj.PublishIfNeeded();

//save it to db

fileResobj.save();

var fileResId = *query resource id by unique internal name*;

///save resource id to linked table?

fileResobj.save();

fileRfileResobj.save();esobj.save();

Hope this helps,

Marcel

srikanthr646926
Level 2
Level 2

Hi Marcel,

Thanks for the reply . I am

actually new to creating web Apps but I did not find the web app form with file upload template. Can you please let me know where exactly to find it?

Marcel_Szimonisz
Community Advisor
Community Advisor

Hello srikanthr64692681,

In web app edit tab choose Page activity

1478933_pastedImage_0.png

In page Advanced controls -> File

1478941_pastedImage_16.png

1478935_pastedImage_11.png

Or you can change any input to file type input in "Selection controls"

1478940_pastedImage_15.png

1478939_pastedImage_13.png

Set up storage by choosing your context variable (you can create them here aswell)

1478945_pastedImage_17.png

After page JS activity has to be placed with following-ish code

The variable you set for the image field will contain following attributes after submit

<ctx>

     <vars>

          <fileImg id="0" md5="af859bcc5957fd1a60f7387d07c672ff" originalName="C:\Users\USER\Pictures\3RzNQc8Ia07A_GjjY49XOt.jpg"/>

     </vars>

</ctx>

so that means in JS you can distinguish from it md5 string, contentType ...

ctx.vars.fileImg -->has attributes  e.g @md5, @originalName if you want to see all of them

 

//create all fields you want to save 

 

//create xml 

var fileResXml = <fileRes contentType={contentType} 

              internalName={intName} label={originalName} md5={md5Var} 

             name={destFileName} originalName={originalName} 

             xtkschema="xtk:fileRes"><folder id={folderId}/></fileRes>; 

//create file res obj 

var fileResObj = xtk.fileRes.create(fileResXml); 

 

//publish 

fileResobj.PublishIfNeeded(); 

//save it to db 

fileResobj.save(); 

 

var fileResId = *query resource id by unique internal name*; 

 

///save resource id to linked table? 

 

fileResobj.save(); 

 

Marcel

Marcel_Szimonisz
Community Advisor
Community Advisor

Hello again,

one more thing

Maybe this will be needed

fileRes.PostUpload ();

As well as setting storageType="5" to that fileRes xml --> 5 is default although i do not know what that means

Let me know

Marcel

srikanthr646926
Level 2
Level 2

Hi Marcel , I am able to save the file and but it is not uploaded on the server(I need to manually go and upload), Like you have mentioned it is something to do with below method

fileResObj.PostUpload(); Post Upload takes XML params

do I need to define like

fileResObj.PostUpload(<params  name={orignialName} md5={md5var}  />)

And also How do I to link to my custom Table?

Marcel_Szimonisz
Community Advisor
Community Advisor

I think not as fileResObj already has this in it. But you need to try that

srikanthr646926
Level 2
Level 2

At this time it is just creating an entry not upload the actual file on to server.

Marcel_Szimonisz
Community Advisor
Community Advisor

Hello,

try to combine this answer with this

I want to Upload images to Public resources every morning. Is it possible to automate this process.

But you might check if publishIfNeeded() saved the same resource on every tracking server.

Marcel

srikanthr646926
Level 2
Level 2

Hi Marcel,

Thanks for all your help, I am not able to upload it on the Server. There must be something I am missing my Form is creating an entry with definied variable in the script but it is not uploading the file to server. I am excepting something like this

1479010_pastedImage_0.png

cho_laiw1789210
Level 2
Level 2

Hi,

I am facing the same problem too. Any solution to this?

And also when I try to retrieve  ctx.vars.file.@md5 or  ctx.vars.file.@originalName both return blank value. The record is stored inside the xtk:fileRes schema after I run the script but with blank value for both Original Name and md5 key. And the record appears under public resources but no file uploaded inside.

Regards,

Cho