在我的asp .net应用程序中 我正在使用从数据库(“产品”实体)派生的实体。 不同领域之间的实体需要3个图像区域。
我使用FileUpload加载thous图像文件,我想在iv'e添加3个图像后将实体添加到上下文(Entity Framework)。
context.AddToProduct(Product);
我想知道在submition
之前保存这些文件的最佳做法是什么即。
我有3个字节[]数组,需要为上传到网站的特定产品保存。
我想到只在服务器端创建一个带有产品名称的目录, 然后,当提交所有产品的凭证时,将它们与图像一起打包到产品实体中并将其保存在实体模型中。
我正在寻找更多的asp .net方式来缓存它们并在需要时检索它们。
任何想法。
这是为产品
加载的单个图像的示例 byte[] imageSize = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile uploadedImage = FileUpload1.PostedFile;
uploadedImage.InputStream.Read(imageSize,0,(int)FileUpload1.PostedFile.ContentLength);
MyProduct product = new MyProduct()
{
Image = imageSize,
Date = DateTime.Now,
State = 1,
Short = "short discription",
Long = "long.......................",
Title = "Some Title",
Price = (float)11.1,
OwnerID = int.Parse(Response.Cookies["user"]["id"]),
};
更多, 如果我为Session [“file1”] Session [“file2”] Session [“file3”]保存,但如果分配用户试图为那些文件加载图片,这可能会导致性能问题。
答案 0 :(得分:1)
如果您保存在会话中,则只有触发图片保存的用户才能访问该图片。所有其他用户的会话[“file1”]将具有不同(或空值),因为会话不同。
我使用它的方法是将图像保存到数据库中。我喜欢这种方法'因为这种方式没有“外部依赖性”,即可能被破坏的路径。
将图像保存到会话中只允许您为一个用户缓存它。将它保存到服务器变量中,将允许任何人检索它(只是要小心不要使用图像重载RAM)