2010-09-07 251 views
1

如何创建环境来选择图像文件并将其上传到asp.net MVC 2?我必须为此编写什么代码?上传图像/文件在asp.net MVC 2

哪个scenariois更好出来:在数据库

店面形象或在应用领域保持图像的副本文件系统和维持其在数据库路径?什么代码必须写在asp.net MVC 2的首选方案?

回答

1

HTML代码

file to upload: <input type="file" name="Photo" id="Photo" /> 

C#

public ActionResult Imageupload(MyObject myObject) 
     { 
      //PhotoForSingleItem is just a class that has properties 
      // Name and Alternate text. I use strongly typed Views and Actions 
      // because I'm not a fan of using string to get the posted data from the 
      // FormCollection. That just seems ugly and unreliable to me. 

      //PhotoViewImage is just a Entity framework class that has 
      // String Name, String AlternateText, Byte[] ActualImage, 
      // and String ContentType 

      HttpPostedFileBase file = Request.Files["Photo"]; 
      //newImage.Name = photo.Name; 
      // newImage.Alt = photo.AlternateText; 

      //Here's where the ContentType column comes in handy. By saving 
      // this to the database, it makes it infinitely easier to get it back 
      // later when trying to show the image. 
      //patient.photo = file.ContentType; 

      Int32 length = file.ContentLength; 
      //This may seem odd, but the fun part is that if 
      // I didn't have a temp image to read into, I would 
      // get memory issues for some reason. Something to do 
      // with reading straight into the object's ActualImage property. 

      try 
      { 
       if (length != 0) 
       { 
        if ((file.ContentType == "image/pjpeg") || (file.ContentType == "image/gif") || (file.ContentType == "image/x-png")) 
        { 
         byte[] tempImage = new byte[length]; 


         file.InputStream.Read(tempImage, 0, length); 




         localRepository.SaveOrUpdate(myObject);// you can insert through sql commands. 
} 
catch(Exception ex){ 

} 
     return View() 
}