我试图在SQL Server数据库中存储文件,并且在C#中使用ASP.NET MVC 3和LINQ to SQL。当我尝试将列的数据类型设置为byte []时,它表示这是无效的数据类型。使用vrabinary(MAX)数据类型似乎是合乎逻辑的事情。LINQ不提供用于存储文件的byte []数据类型
目标是将PDF文件存储在用户选择使用HTTP文件上传器上传的数据库中。在指定要存储文件的列的LINQ成员变量的赋值期间发生该错误。
错误3无法隐式转换类型 'System.Web.HttpPostedFileBase' 到 'System.Data.Linq.Binary' C:\用户\亚伦彭定康\文档\ Visual Studio 2010的\项目\ MyApp的\ MyApp的\控制器\ MyController.cs 66 31 MyApp
我还没找到太多遇到这个问题的其他人的方式,所以我认为必须有一些我遗失的东西,对于任何人来说都是过于基本的。
我的控制器:
public ActionResult UploadPDF()
{
List<ViewDataUploadFilesResult> r = new List<ViewDataUploadFilesResult>();
HttpPostedFileBase hpf;// = Request.Files[file] as HttpPostedFileBase;
foreach (string file in Request.Files)
{
hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "images\\" + Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
r.Add(new ViewDataUploadFilesResult()
{
Name = savedFileName,
Length = hpf.ContentLength
});
}
MyApp.Models.MyAppDataContext db = new MyApp.Models.MyAppDataContext();
MyApp.Models.PDFFile myPDFFile = new MyApp.Models.PDFFile();
myPDFFile.Content = hpf;
db.questions.InsertOnSubmit(myPDFFile);
db.SubmitChanges();
return View("UploadPDF", r);
}
什么的去了解这一切的正确方法?
P.S .:如何将PDF作为嵌入对象显示而不保存到服务器?
D.A.P.
设计师没有该选项。 –