I was able to make the form work by just changing this part of the SC generated form code (file [form_app_name]_doc.php)
if (!empty($_GET))
{
foreach ($_GET as $nmgp_var => $nmgp_val)
{
$$nmgp_var = NM_utf8_decode(NM_utf8_urldecode($nmgp_val));
$$nmgp_var = str_replace('**Plus**', '+', $$nmgp_var);
$$nmgp_var = str_replace('**Jvel**', '#', $$nmgp_var);
$$nmgp_var = str_replace('**Ecom**', '&', $$nmgp_var);
$$nmgp_var = str_replace('**Perc**', '%', $$nmgp_var);
}
}
to this one, that I coped from the SC generated code for the grid app (file [grid_app_name]_doc.php)
if (!empty($_GET))
{
foreach ($_GET as $nmgp_var => $nmgp_val)
{
$$nmgp_var = $nmgp_val;
}
}
After this change to the file [form_app_name]_doc.php, now when I click on the file link in the form, the file download is successful
But this change has to be redone everytime I deploy the form app 
[SIZE=14px]@NetMake[/SIZE]: can anyone look into this issue?
Maybe NM_utf8_decode has some code that is not working on PHP >= 7.1.2?
Better still, can I suggest you use the same code to handle files in both Form and Grid apps, basing it on the current code for grid apps (since that is the one that is working)?