2011-06-01 3 views
0

je suis en train de le faireCréation du fichier dans ASP.NET

File.WriteAllText(@"C:\sample.text", filename); 

où le nom de fichier est une variable de type chaîne, mais je pense que par ASP.NET nous ne pouvons pas créer un fichier.

peut me donner une solution pour créer un fichier sur le système

ou même je suis ne parviennent pas à ce aussi

Clipboard.SetText(filename); 

il me donne exception STA

ou d'une autre façon que je pense quelque chose comme ça

Response.Reditect("newpage.aspx", _blank, filename) // can this be possible? 

une nouvelle page ouvrira avec containin g texte ce que jamais dans le « nom de fichier »

+0

Pourquoi pensez-vous que vous ne pouvez pas utiliser WriteAllText? Avez-vous une erreur? –

+1

Vous pouvez écrire sur des fichiers locaux sur le serveur Web, mais vous aurez besoin d'autorisations pour cela, par défaut, le site Web s'exécute comme un compte utilisateur IIS spécifique, donc, sauf si vous avez un répertoire marqué par cet utilisateur, il n'est pas aller au travail .. Affichage des erreurs vous aidera à obtenir de meilleures réponses. – BugFinder

+0

je suis en mesure de créer un fichier avec mon pc parce que je suis sever mais l'autre utilisateur ne sera pas capable parce que grâce à la langue scrpting vous ne pouvez pas créer le fichier autrement sage conduire à pirater !! ou bien l'utilisateur donnera la permission aux autres personnes de créer un fichier sur son PC – shruti

Répondre

0

Vous avez 2 options que je vois, d'abord demander à l'utilisateur de télécharger le fichier:

FileInfo file = new System.IO.FileInfo(@"C:\sample.text"); 
if (file.Exists) 
{ 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); 
    Response.AddHeader("Content-Length", file.Length.ToString()); 
    Response.ContentType = "application/octet-stream"; 
    Response.WriteFile(file.FullName); 
    Response.End(); 
} 

Ou d'autre part, comme vous le suggérez, la sortie du contenu au browser: Je ne recommanderais cependant pas ce qui suit, car il sort littéralement le contenu du fichier en tant que texte dans le navigateur, notez que je l'ai codé html pour que html ne soit pas injecté via le fichier texte.

FileInfo file = new System.IO.FileInfo(@"C:\sample.text"); 
if (file.Exists) 
{ 
    Response.Clear(); 
    Response.Write(Server.HtmlEncode(File.ReadAllText(file.FullName))); 
    Response.End(); 
} 
Questions connexes