当前位置: 首页 > 编程语言 > C#

ASP.NETMVC上传图片分享

时间:2023-04-10 19:21:15 C#

ASP.NETMVC上传图片我找了一些代码来做这件事,并尝试将其实现到我的项目中,但到目前为止一直没有成功。我没有收到任何错误,但我没有看到任何图像存储在visualstudio的图像目录中。视图:@using(Html.BeginForm()){请在此处输入您的故事:提交}控制器:[HttpPost]publicActionResultCreate(Testimonialstestimonials){if(Request.Files.Count>0){varfile=Request.文件[0];if(file!=null&&file.ContentLength>0){varfileName=Path.GetFileName(file.FileName);varpath=Path.Combine(Server.MapPath("~/Images/"),fileName);文件.另存为(路径);}}TestimonialsContexttestContext=newTestimonialsContext();testContext.testimonialContext.Add(推荐);testContext.SaveChanges();返回RedirectToAction("索引");if块下面的部分工作正常。这只是将文本区域的内容保存到数据库中。有任何想法吗?我需要对模型进行任何更改吗?模型:[Table("Testimonials")]publicclassTestimonials{publicintId{get;放;}publicstringTestimonial{get;放;}}上下文类:公共类TestimonialsContext:DbContext{publicDbSettestimonialContext{get;放;您的文件未发布,因为您的表单上没有必要的enctype属性。更改视图以使用@using(Html.BeginForm("Create","Testimonials",FormMethod.Post,new{enctype="multipart/form-data"}))您现在将获取文件并保存它,但是与您的Testimonials对象无关,因此您无法检索它。您需要向Testimonials表添加其他字段以存储文件属性(如果Testimonials可以包含多个图像,则需要一个单独的表)。我还建议您使用唯一标识符将文件保存到服务器(例如,如果2个用户上传同名文件,以防止意外覆盖)。您修改后的模型可能是publicclassTestimonials{publicintId{get;放;}publicstringTestimonial{get;放;}publicstringImagePath{得到;放;}publicstringImageDisplayName{得到;放;我也建议为包含上述属性的视图使用视图模型以及publicHttpPostedFileBaseImage{get;放;}publicHttpPostedFileBaseImage{get;,假设您不想让用户上传2GB的文件)。那么你的controller方法就是上面的C#学习教程:ASP.NETMVC上传图片分享的全部内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——【HttpPost]publicActionResultCreate(TestimonialVMmodel){//ModelState.IsValid检查省略Testimonialstestimonials=newTestimonials();//将视图模型属性映射到数据模型....if(model.Image!=null&&model.Image.ContentLength>0){stringdisplayName=model.Image.FileName;字符串fileExtension=Path.GetExtension(displayName);stringfileName=string.Format("{0}.{1}",Guid.NewGuid(),fileExtension)stringpath=Path.Combine(Server.MapPath("~/Images/"),fileName)model.Image。另存为(路径);//更新数据模型testimonials.ImagePath=path;testimonials.ImageDisplayName=displayName;}TestimonialsContexttestContext=newTestimonialsContext();testContext.testimonialContext.Add(推荐);testContext.SaveChanges();返回RedirectToAction("索引");}本文收集自网络,不代表立场,如如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: