//Verifica se o arquivo enviado não está vazio
if(Arquivo1.ArquivoPostado!=nulo)
{
string nome = Arquivo1.PostedFile.FileName;
//Obtém o índice do último "." no nome do arquivo (caminho incluído)
int i= nam.LastIndexOf(".");
//Obtém a extensão do arquivo
string newext =nome.Substring(i);
//Aqui eu nomeio automaticamente os arquivos com base na data e no tamanho do arquivo para garantir que os nomes dos arquivos não sejam repetidos.
DateTime agora = DateTime.Agora;
string novonome=agora.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString();
//Salve o arquivo no diretório desejado. Este é o diretório de upload no diretório raiz do IIS. Você pode alterá-lo.
//Nota: eu uso Server.MapPath() aqui para obter o diretório absoluto do arquivo atual, "" deve ser substituído por "".
File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext));
this.HyperLink1.NavigateUrl
= "upload"+newname+newext;
tamanho do arquivo
//fname.Text=Arquivo1.PostedFile.FileName;
//fenc.Text=File1.PostedFile.ContentType;
//fsize.Text=File1.PostedFile.ContentLength.ToString();
}