图片上传地址存入mysql_图片上传并获得图片相对路径保存在数据库中

//判断上传文件是否是图片

private static bool IsAllowedExtension(FileUpload upfile)

{

string strOldFilePath = "";

string strExtension = "";

string[] arrExtension = { ".gif", ".jpg", ".bmp", ".png" };

if (upfile.PostedFile.FileName != string.Empty)

{

strOldFilePath = upfile.PostedFile.FileName;//获得文件的完整路径名

strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));//获得文件的扩展名,如:.jpg

for (int i = 0; i < arrExtension.Length; i++)

{

if (strExtension.Equals(arrExtension[i]))

{

return true;

}

}

}

return false;

}

//图片上传并将图片重命名

protected void FileUpload_Button_Click(object sender, EventArgs e)

{

try

{

if (FileUpload1.HasFile)

{

if (IsAllowedExtension(FileUpload1))

{

string filepath = FileUpload1.FileName;

//string filename = filepath.Substring(filepath.LastIndexOf('\\') + 1, filepath.Length - filepath.LastIndexOf('\\') - 1);//(filepath.LastIndexOf("\\") + 1);

//以年-月-日-时-分-秒-毫米将图片重新命名

string filename = DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fffffff")+filepath.Substring(filepath.LastIndexOf('.'), filepath.Length - filepath.LastIndexOf('.'));

//设定上传路径(绝对路径)

string uppath = Server.MapPath("~/Photo/") + filename;

//图片上传至绝对路径

FileUpload1.PostedFile.SaveAs(uppath);

//设定数据库的存储路径

string savepath="~\\Photo\\"+filename;

HiddenField1.Value = savepath;

lblInfo.Text = "上传成功!";

}

}

else

{

lblInfo.Text = "请选择上传文件";

}

}

catch (Exception ex)

{

lblInfo.Text = "上传发生错误!原因是:" + ex.ToString();

}

}

前台放三个控件

前台代码:

CausesValidation="False" οnclick="FileUpload_Button_Click" />

注:

1、FileUpload 控件不能放在UpdatePanel控件内,如果放在UpdatePanel内FileUpload1.HasFile始终为false

2、在给insert语句填充数据时,要使用cmd.Parameters.AddWithValue("@b", savepath);的格式防止字符串savepath中的'\'转义,若使用string sql=string.Format("insert into table1(path) values('{0}')",savepath);的格式,存入数据库的图片路径将会没有'\'。

3、若在图片上传的页面中有验证控件,且不想在单击图片上传按钮的过程中进行验证,需要加上CausesValidation="False"属性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值