in reply to Script not setting ownership of new directory

In addition to using numeric IDs (as pc88mxer suggests), you will need to make sure the user your Web app is running as is in the sftp group. The list of groups is stored in the $( variable, and this will print all of the groups you are in so you can check:
print join( " ",$( );

Also, using -1 for the first argument, to avoid changing the owner and only change the group, may be simpler.