C#上传图片,转化为二进制流。路径超长 5C

图片说明

11个回答

imd不是一个base64的字符串吗,base64可以直接转换为图片啊,好像是convert.frombase64,啥的,你将base64 的字符串填入路径,参数不对的啊

bgxlj
bgxlj 回复qq_38137833: 你是从类imagedisplay里面取的src,不一定这个就是个url,人家可能只是找个位置放base64编码而已
接近 2 年之前 回复
u012567254
1002 回复qq_38137833: 从图片来看,绝壁是你参数不对,具体你怎么获取的,那是你整个项目的问题了,base64是可以直接转成图片的
接近 2 年之前 回复
qq_38137833
轻轻打小怪 var imd = $('#imagedisplay').attr("src");
接近 2 年之前 回复
qq_38137833
轻轻打小怪 这个base64串是从路径里面拿的
接近 2 年之前 回复

上传图片,只是吧图片复制再项目某个文件里,把路径入库,
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 图片地址信息入库
                            想查看的时候直接加载地址就可以了
qq_38137833
轻轻打小怪 谢谢
接近 2 年之前 回复

先做图片压缩在做上传 这样是最好的 不压缩处理读取的时候回很慢

qq_38137833
轻轻打小怪 谢谢
接近 2 年之前 回复

数据库里的存图片的字段设计的什么类型的?我设计的是Image类型的,没问题。不过我读取的是身份证上的图片。没那么大。

qq_38137833
轻轻打小怪 varbinary(MAX)
接近 2 年之前 回复

imd是图片本身,而不是图片的文件名,而path是文件的文件名,而不是图片的本身
说着像绕口令,但是你不应该用path=imd

qq_36537774
一只会走路的鱼 直接在cd到电脑的图片所在文件夹,再copy路径就ok拉。。
接近 2 年之前 回复
caozhy
每个人都有一个梦才不会孤单的说话就有天堂 回复qq_38137833: 路径后面怎么有base64编码的那些东西
接近 2 年之前 回复
qq_38137833
轻轻打小怪 可是我的imd是拿的路径呀
接近 2 年之前 回复

图片说明
路径是这样,还是不行格式不对

大家有做图片存入数据库类似的功能的吗,可以给我参考一下吗

Virczz
Virczz 图片一般不直接存入数据库。图片存在你的磁盘内,数据库存放图片地址的引用
接近 2 年之前 回复

你直接这样写 return BASE64Decoder.class.newInstance().decodeBuffer(imd.substring(imd.indexOf(";base64,"))); 因为 base64已经是图片的二进制流base64加密的。 导入 sun.misc.BASE64Decoder;包

qq_38137833
轻轻打小怪 回复ApatheCrazyFan: 谢谢
接近 2 年之前 回复
ApatheCrazyFan
ApacheCrazyFan 你要把imd看作是 图片的二进制流加密后的字符串,你现在要把它解密成byte[],也就是流
接近 2 年之前 回复
ApatheCrazyFan
ApacheCrazyFan 我忘了你是C#,对不起,不知道你那有没有BASE64的解密包
接近 2 年之前 回复
ApatheCrazyFan
ApacheCrazyFan 还有就是 返回的byte[]数组的长度一定是 3的倍数
接近 2 年之前 回复
ApatheCrazyFan
ApacheCrazyFan 错了,还的+1,return BASE64Decoder.class.newInstance().decodeBuffer(imd.substring(imd.indexOf(";base64,") + 1));
接近 2 年之前 回复

var imd = $('#imagedisplay').attr("src");

从前端用 $('#imagedisplay').attr("src");获取到的base64格式字符串,就是图片本身,而不是图片的地址。所以如果你要获取到图片的byte数据,用 byte[] arr = Convert.FromBase64String(inputStr);可以参考https://blog.csdn.net/qq_26712977/article/details/78390690

qq_38137833
轻轻打小怪 谢谢
接近 2 年之前 回复
共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问