cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
zohaibukhan
Helper I
Helper I

Client side Validation on File Field Type

Hello everyone,

Thanks for reading my question.

I've created a Field of type File and place it on the form (model driven app). I need to do basic validation of the file such as File extension and File content. Now, with the help of Dataverse REST Builder I've the code to find the file name/extension & file content but the challenge is if I run the code on the fieldOnChange then the needed information doesn't exist in the database by the time. So, I need to find some other event on which I can trigger the code.

FileOnChange.png

 

 

this.fileToProcessOnChange = function(executionContext){ 
        prg_DataTransfer.checkFileExtension(executionContext);
    }

    this.checkFileExtension = function (executionContext){
        $.ajax({
            type: "GET",
            url: Xrm.Utility.getGlobalContext().getClientUrl() + "/api/data/v9.2/prg_temporarydatas(cfb732f7-7acd-4193-9bfc-d4b352669f1c)?$select=prg_filetoprocess_name",
            headers: {
                "OData-MaxVersion": "4.0",
                "OData-Version": "4.0",
                "Content-Type": "application/json; charset=utf-8",
                "Accept": "application/json",
                "Prefer": "odata.include-annotations=*"
            },
            async: true,
            success: function (data, textStatus, xhr) {
                var result = data;
                //console.log(result);
                // Columns
                var prg_temporarydataid = result["prg_temporarydataid"]; // Guid
                var prg_filetoprocess_name = result["prg_filetoprocess_name"]; // Text
                console.log("File Name: " + prg_filetoprocess_name);
            },
            error: function (xhr, textStatus, errorThrown) {
                console.log(xhr);
            }
        });
    }

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
GuidoPreite
Super User
Super User

I suppose your goal is to stop the user to upload a file if doesn't follow a specific filename/extension?

for example only uploading files like 2022*.pdf

 

I think it's difficult to run this logic at client-side, my suggestion is to check if you can get the name inside a sync pre plugin and eventually stop there, it's the most robust way to stop the upload.

 

View solution in original post

3 REPLIES 3
GuidoPreite
Super User
Super User

I suppose your goal is to stop the user to upload a file if doesn't follow a specific filename/extension?

for example only uploading files like 2022*.pdf

 

I think it's difficult to run this logic at client-side, my suggestion is to check if you can get the name inside a sync pre plugin and eventually stop there, it's the most robust way to stop the upload.

 

Your understanding is absolutely correct. I need to validate the uploaded file extension and later need to check the format of the file.

 

Thanks for the suggestion and giving an alternate option to go with the plugin approach.

 

If you don't mind can I ask why are you saying difficult to run at client-side? Because, its a client-side code but I'm unable to find the right event to trigger the code. Even, I'm happy to trigger the code once the file is uploaded. Does it make sense? If I'm talking total non-sense please ignore me! 😉

 

Thanks again for your reply, appreciated!

GuidoPreite
Super User
Super User

beside the fact that by your tests client-side check is not successful:

1) client-side logic can be easily disabled

2) the upload can happen outside the web app client (directly by API for example)

in both these scenarios the plugin approach will always run

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (2,802)