Click here to Skip to main content
15,906,081 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Register.aspx
C#
string chkUser = "Select * FROM [User] where Email='" + TextBoxEmail.Text + "'";
       dt = dbClass.ConnectDataBaseReturnDT(chkUser);
       if (dt.Rows.Count > 0)
       {

       }
       else
       {
           if (UploadUserPhoto.PostedFile != null)
           {
               string myMap = MapPath("~/").ToLower();
               Random r = new Random();
               int next = r.Next();
               string ImageName = UploadUserPhoto.PostedFile.FileName;
               // ToSaveImageName = DateTime.Now.ToString("yyyy-MM-ddTmm:hh:ss");
               //ToSaveImageName.Replace('-', '1');
               //ToSaveImageName.Replace(':', '2');
               //Directory.CreateDirectory(myMap + ToSaveImageName);
               sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
               if (sImageFileExtension == ".gif" || sImageFileExtension == ".png" || sImageFileExtension == ".jpg" || sImageFileExtension == ".jpeg" || sImageFileExtension == ".bmp")
               {
                   string ImageSaveURL = myMap + "UserImage/" + next + sImageFileExtension;
                
   
                   {
                       UploadUserPhoto.PostedFile.SaveAs(ImageSaveURL);
                       string RegisterQuery = "INSERT INTO [User] (Email,Password,Name,Country,Description,ImageName) VALUES('" + TextBoxEmail.Text + "','" + TextBoxPassword.Text + "','" + TextBoxName.Text + "','" + TextBoxCountry.Text + "','" + TextBoxComment.Text + "','" + next + sImageFileExtension + "')";
                       dbClass.ConnectDataBaseToInsert(RegisterQuery);
                       Response.Redirect("~/Login.aspx");
                   }
                                 }
               else
               {
               }
           }
           else
           {
               ToSaveImageName = "No";
               sImageFileExtension = "Image";
           }

       }

I have registerpage. When I upload image is successfully uploaded but I allow nulls in my database table so when I am not uploading image then error comes:
StartIndex cannot be less than zero. in this line:
C#
sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
Posted
Updated 13-Apr-11 22:54pm
v2
Comments
Pong D. Panda 14-Apr-11 5:15am    
A lot of bad programming practice and very prone to sql injection.

Just wrap the error line(+ all code related to image) and check if file is there or not. If so, move ahead.
C#
if(UploadUserPhoto.HasFile)
{
 ... 
  sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();

... 
...
...
}

Details about the property used here: FileUpload.HasFile Property[^]
 
Share this answer
 
Comments
Manfred Rudolf Bihy 14-Apr-11 7:05am    
My 5!
Try this code. You should check if the filename has a value and contains '.'

C#
sImageFileExtension = ImageName.Contains('.') ? imageName.Substring(ImageName.LastIndexOf('.')) : "";


Also, you should not use that kind of approach on inserting or doing sql transaction. If someone put something like this
'; drop table User; --

on your TextBoxEmail.Text.

The resulting query will be
Select * FROM [User] where Email=''; drop table User; --'


Then you're doomed!

Good luck!
 
Share this answer
 
v3
Comments
Manfred Rudolf Bihy 14-Apr-11 7:05am    
Well spotted! 5+

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900