上传图片时出错 [英] Error while uploading the image

查看:84
本文介绍了上传图片时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆