Bueno aunque esta en VB.net creo q te puede servir.
Sobre lo de los permisos de la carpeta, bueno yo creo a todos los adjuntos en un fichero aparte, porq me da mayor orden.
en esta carpeta es que en seguridad le asigno al usuario asp para que pueda escribir y leer, no se hasta q punto sea seguro hacer esto, no he probado si alguien podria tener acceso a la carpeta (de ser asi agradeceria mucho q me pasen la voz
)
Bueno aqui mi humilde codigo:
Dim direccion As String = Server.MapPath(System.DBNull.Value.ToString())
direccion = direccion.Substring(0, direccion.LastIndexOf("\")) & _
"\Archivos\" & id.Name
direccion = direccion & "\" & Path.GetFileName(File1.PostedFile.FileName)
If File.Exists(direccion) Then
Say("El nombre del archivo ya existe")
Else
'El nombre del archivo no existe
File1.PostedFile.SaveAs(direccion)
End If
Espero poder haber ayudado