有没有人有一个如何使用实体框架在SQL Server 2008数据库中存储上传文档(无论是Word还是PDF,等。)的示例?
我想我已经找到了文件上传部分(见下面的代码),尽管我愿意接受建设性的评论。
我曾经在较旧的数据库中进行大量文档存储,并且由于SQL Server 2008有新的数据类型,有人可以建议我应该为我上传的文档使用哪些文档(它仍然是Image)吗?
此外,正如您从我的代码中看到的那样,如果我将上传的文档作为字节数组(或者请另行建议),我该如何将其传递给我的实体?
这是我到目前为止所拥有的:
[HttpPost]
public ActionResult Create(HttpPostedFileBase fileUpload)
{
if (fileUpload == null) return View();
if (fileUpload.ContentLength == 0) return View();
// not sure whether this is useful or the method below this
var reader = new StreamReader(fileUpload.InputStream);
foreach (string file in Request.Files)
{
var hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0) continue;
var savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
var curFile = System.IO.File.Open(file, FileMode.Open);
var fileLength = curFile.Length;
var tempFile = new byte[fileLength];
curFile.Read(tempFile, 0, Convert.ToInt32(fileLength));
var jobFile = new JobFile
{
UploadDate = DateTime.Now,
UploadedBy = User.Identity.Name,
FileName = savedFileName,
ContentType = hpf.ContentType
};
jobFile.FileData =
_jobFileRepository.Save();
}
return RedirectToAction("Index");
}
非常感谢任何帮助。
答案 0 :(得分:0)
假设您将FileData作为二进制类型。
jobFile.FileData = tempFile.ToArray();