I need to use php to upload files to a ftp or sftp server that is installed on a Windows XP PC.
How I can upload a file from php preserving the timestamp?
I assume you mean a PHP web application, used from a browser on a Windows XP machine?
You cannot conserve the timestamp because PHP can only see what the browser sends, But the browser doesn't send this information. :-(
Otherwise for a windows SFTP client I suggest Putty PSFTP, and PLINK if you need to automate it.