上传图片时出错 [英] Error while uploading the image
问题描述
Register.aspx
Register.aspx
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";
}
}
我有注册页.当我上传图像成功上传但我的数据库表中允许使用空值时,因此当我不上传图像时会出现错误:
StartIndex不能小于零.在此行中:
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:
sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
推荐答案
只需包装错误行(+与图像有关的所有代码),然后检查文件是否存在.如果是这样,请继续.
Just wrap the error line(+ all code related to image) and check if file is there or not. If so, move ahead.
if(UploadUserPhoto.HasFile)
{
...
sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
...
...
...
}
有关此处使用的属性的详细信息: FileUpload.HasFile属性 [ ^ ]
Details about the property used here: FileUpload.HasFile Property[^]
尝试此代码.您应该检查文件名是否具有值并包含''.''
Try this code. You should check if the filename has a value and contains ''.''
sImageFileExtension = ImageName.Contains('.') ? imageName.Substring(ImageName.LastIndexOf('.')) : "";
另外,您不应在插入或执行sql事务时使用这种方法.如果有人放这样的东西
Also, you should not use that kind of approach on inserting or doing sql transaction. If someone put something like this
''; drop table User; --
在您的TextBoxEmail.Text上.
结果查询将是
on your TextBoxEmail.Text.
The resulting query will be
Select * FROM [User] where Email=''''; drop table User; --''
那你就注定了!
祝你好运!
Then you''re doomed!
Good luck!
这篇关于上传图片时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!