我想读取一个日志文件(txt文件)并在txt文件中查看它并以txt格式保存。 这是我的代码,它可以很好地显示和下载txt文件中的读取内容,我几乎没有问题..
public FileResult Download(string id)
{
int rowId = Convert.ToInt32(id);
LoadFileInfoCache();
var fileDetails = from ff in _currentFileDetails
where ff.FileId == rowId
select new
{
name = ff.FileName,
location = ff.FileLocation
};
var fileDetailsList = fileDetails.ToList();
string fileLocation = fileDetailsList[0].location;
string fileName = fileDetailsList[0].name;
string contentType = "application/txt";
var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var stream = (Stream)(file);
return File(stream, contentType, fileName);
}
当我点击保存按钮时,在保存为窗口时我想要带扩展名的文件名。但它只显示我的文件名。 并且在textfile中,标题名称应该是filename.txt,但它为我的代码显示了Filename [1]。 任何人都可以请一些想法在标题中显示带有extn的文件名并另存为窗口。
答案 0 :(得分:1)
更新了代码
public FileResult FileOutput()
{
string filename = "alokdida.txt";
string filepath = "C:\\logs\\Structured_Exception_Log.txt";
return File(filepath, "application/octet-stream", filename);
}
这应该适合你。
第二次修改(请参见粗体字代码更改后的代码)
public FileResult Download(string id)
{
int rowId = Convert.ToInt32(id);
LoadFileInfoCache();
var fileDetails = from ff in _currentFileDetails
where ff.FileId == rowId
select new
{
name = ff.FileName,
location = ff.FileLocation
};
var fileDetailsList = fileDetails.ToList();
string fileLocation = fileDetailsList[0].location;
string fileName = fileDetailsList[0].name+".txt"; // Here you need to append the .txt
string contentType = "application/txt";
var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var stream = (Stream)(file);
return File(stream, contentType, fileName);
}