Click here to Skip to main content
15,918,706 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.

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+
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!

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