You seem to have confused yourself as to what you are trying to do.
byte image = new byte[stream.Length + 1];
stream.Read(image, 0, image.Length);
So at this point you have a byte array which contains the resized picture data that was uploaded by the user.
You then do this;
image = uploadcollogo.FileName.Substring(uploadcollogo.FileName.IndexOf('/') + 1); //Error
What is it you think you are attempting to do here?
What it looks like is you are wanting to get the name of the file without the path information if this is correct you need to create another variable which is a string such as
and look at Path.GetFileName
] don't try to assign the name of the file to the byte array containing the data it will not work.
string fileName = Path.GetFileName(uploadcollogo.FileName);
This bit has the same problem you are trying to assign a string to a byte array
Byte image1 = "~/collegelogo/" + image.ToString();
Try this instead.
string relativeFilePath = "~/collegelogo/" + fileName;