imd不是一个base64的字符串吗,base64可以直接转换为图片啊,好像是convert.frombase64,啥的,你将base64 的字符串填入路径,参数不对的啊
imd是图片本身,而不是图片的文件名,而path是文件的文件名,而不是图片的本身
说着像绕口令,但是你不应该用path=imd
路径是这样,还是不行格式不对
大家有做图片存入数据库类似的功能的吗,可以给我参考一下吗
你直接这样写 return BASE64Decoder.class.newInstance().decodeBuffer(imd.substring(imd.indexOf(";base64,"))); 因为 base64已经是图片的二进制流base64加密的。 导入 sun.misc.BASE64Decoder;包
var imd = $('#imagedisplay').attr("src");
从前端用 $('#imagedisplay').attr("src");获取到的base64格式字符串,就是图片本身,而不是图片的地址。所以如果你要获取到图片的byte数据,用 byte[] arr = Convert.FromBase64String(inputStr);可以参考https://blog.csdn.net/qq_26712977/article/details/78390690
上传图片,只是吧图片复制再项目某个文件里,把路径入库,
string imageName = fileimage.FileName;//上传控件获取上传图片名称
string imagewj = Server.MapPath("mp4Image");
if (!Directory.Exists(imagewj))
{
Directory.CreateDirectory(imagewj);
}
string saveimage = imagewj + @"\" + imageName;
fileimage.SaveAs(saveimage);
然后把imagewj\imageName 图片地址信息入库
想查看的时候直接加载地址就可以了
先做图片压缩在做上传 这样是最好的 不压缩处理读取的时候回很慢
数据库里的存图片的字段设计的什么类型的?我设计的是Image类型的,没问题。不过我读取的是身份证上的图片。没那么大。
你这个imd应该是一个base64的码,你要把里边的base64的码提取出来,你那开头应该不是base64的码,后边那一串应该是的,应该就是你的图片
把这个转成byte[]
var data = Convert.FromBase64String(s);
然后初始化为memorystream 可以直接初始化为image,然后就可以为所欲为了
using (MemoryStream ms = new MemoryStream(data))
{
//这就是你的image
Image image = Image.FromStream(ms);
}