Upload image / file in asp.net MVC 2
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 i开发者_StackOverflow中文版n 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 ?
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
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()
}
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
精彩评论