views:

103

answers:

3

How to create the environment to select the image file and upload it in asp.net MVC 2 ? What code I have to be write for this ?

Which scenariois better out of :

Store image in database or keep copy of image in file system at application domain and maintain its path in DB ? what code have to write in asp.net MVC 2 for preferred scenario ?

+1  A: 

Html code

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()
}
Sameer Joshi
+2  A: 

you may try this link
http://weblogs.asp.net/imranbaloch/archive/2010/04/03/image-preview-in-asp-net-mvc.aspx
it has sample project attached. If you have large number of picture you may store in file system. I think it is your decision depending upon your scenario

Tassadaque
+1  A: 

Here is a pretty much zero code solution for storing files in a database

http://sfvt.wordpress.com/2010/09/07/asp-net-tutorial-detailsview-insert-imag-binary-database/

Enjoy

Jamie