gpt4 book ai didi

javascript - 当我从数据库获取文件名时,如何在 iframe 中显示文档文件?

转载 作者:行者123 更新时间:2023-12-03 06:40:59 24 4
gpt4 key购买 nike

当我从数据库获取文件名时,如何在 iframe 中显示文档文件?我的数据库表名称是 File,我的 View 模型是 MyFileModel。

    public ActionResult Create(HttpPostedFileBase file)
{
try
{
if (ModelState.IsValid)
{
db.Files.Add(new File()
{
FileName = Path.GetFileName(file.FileName)
});
db.SaveChanges();
}
}
catch (Exception)
{
var error = "Sorry not save";
}
return Content("");
}

public FileStreamResult GetPDF()
{
var file = db.Files.Single(s => s.Id == 1);
FileStream fs = new FileStream(Server.MapPath(file.FileName), FileMode.Open, FileAccess.Read);
return File(fs, "application/pdf");
//return View(Server.MapPath("~/File/SegmentAdd.txt"));
//return File(fs,"text/plain");
}

<div id="frame">
<iframe src="@Url.Action("GetPDF","Home")" width="900px" height="500px"></iframe>
</div>
`

最佳答案

我发布的答案都是基于假设,我对您的解决方案没有清晰的了解。如果您不保存物理文件,请尝试将其保存在文件夹中,然后将名称保存在数据库中,或者尝试将整个路径保存在数据库中。

方法1:

如果您要将文件保存在文件夹中,例如文件,最好的方法是在 web.config(位于根目录的 .config 文件)中添加一个 key 如下

<add key="FilePath" value= "~/File/"/>

然后按如下方式修改您的 C# 代码

public FileStreamResult GetPDF()
{
var file = db.Files.Single(s => s.Id == 1);
string fileName = file.FileName;
string filePath = ConfigurationManager.AppSettings["FilePath"] + fileName;
FileStream fs = new FileStream(Server.MapPath(filePath), FileMode.Open, FileAccess.Read);
return File(fs,"text/plain"); // "text/plain" if your file content-type is text file
//return View(Server.MapPath("~/File/SegmentAdd.txt"));
//return File(fs,"text/plain");
}

方法2:

如果您保存整个路径,那么它会使编码变得更加简单,并且您无需更改已编写的代码,只需继续执行即可。

希望这对您有帮助。

关于javascript - 当我从数据库获取文件名时,如何在 iframe 中显示文档文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com