ajax上传图片,C#编写的webserbice接收,无法上传
发布网友
发布时间:2022-04-19 20:08
我来回答
共1个回答
热心网友
时间:2023-05-20 23:14
不是这样上传的,你就传个图片路径服务器怎么能获取到客户端的文件?
如果需要ajax异步上传图片,有两种解决方案,
一、采用HTML5的FileReader的readAsDataURL获取图片的base64编码,获取出来是一个字符串,把这个字符串上传到服务器,服务器接收到采用Convert.FromBase64String获取图片byte数组,再转换成图片格式保存。
二、使用隐藏form表单和隐藏iframe,将form的target属性设置为iframe的name,在from表单里放一个file控件,用它选择图片,然后提交form表单,后台接收到图片保存,返回一段js代码,类似window.parent.uploadCallback({"state":1,"url":"你保存图片的路径"});,然后在页面写一个function uploadCallback(result){//处理回调}
不知道有没有更好的解决办法,我用过的就这两种,感觉都挺好用。追问第一种方法:参数过长,无法上传,图片大小大约在3M作用,而且图片是要在前端显示的
我也试过分多次上传,时间 消耗很长
第二种方法,我这里只有webmethod接口,好像不太容易实现。