Expect Script called from some other script works from Cron but only some files not all

Hi,
I have a Script in Solaris Machine that Generates Html Files total 23 nos
Then in that i have a expect script called from main script that copies html files to Other server which is Linux
Some times it don't copy all files and some times it copies File but with Size 0kb while file generated are proper
Here is my expect script

#!/home/spsy/real_time/digital/expect  -df
spawn sftp root@172.23.11.10
expect "root@172.23.11.10's password"
send "root!?\n"
expect "sftp>"
send "cd /var/www/html/web1/Archives/digital"
send "\n"
expect "sftp>"
send "lcd /home/spsy/real_time/digital/"
send "\n"
send "mput *.html"
send "\n"
expect "sftp>"
send "exit\n"
interact

and My Cron Job is like this

0,5,10,15,20,25,30,35,40,45,50,55 * * * * ksh -c '. ~/.profile; /home/spsy/real_time/digital/online_status.ksh* 2>&1 > /home/spsy/real_time/digital/cron.log '

and output of Cron log is

spawn sftp root@172.23.11.10
Connecting to 172.23.11.10...
root@172.23.11.10's password:
sftp> cd /var/www/html/web1/Archives/digital
sftp> lcd /home/spsy/real_time/digital/
sftp> mput *.html
exit

can anyone tell me where i am wrong works perfectly when run manually
and also i have used /etc/profile in my main Script