Foxtable(狐表)用户栏目专家坐堂 → [分享]ios11.3以上无法上传提交图文的问题解决方案


  共有3151人关注过本帖树形打印复制链接

主题:[分享]ios11.3以上无法上传提交图文的问题解决方案

帅哥哟,离线,有人找我吗?
new4w
  11楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
  发帖心情 Post By:2019/10/29 11:33:00 [只看该作者]

根据这个帖子,我这么解决的,供大家参考:
主要方法就是将图片作为一个base64编码的字符串提交给服务器,然后服务器再将字符串转码为图片保存

1、主页面代码加入  wb.InsertHTML("form1","<input name='picstr' value='' id='picstr' type='hidden' ><br/>")
2、通过sendAjaxjson来提交数据;
修改sendajaxjson里面代码,在内部代码里面加入已生成json信息:
obj.活动码 = document.getElementById("活动码").value;
     obj.家长姓名=document.getElementById("家长姓名").value;
obj.手机号码=document.getElementById("手机号码").value;
obj.验证码=document.getElementById("验证码").value;
obj.picstr=document.getElementById("picstr").value;
3、修改weui.me.js的previewFile3函数:
Files[Files.length] = {blobFile:red.FileName,data:base64toBlob(base64Data)};
var pics = document.getElementById("picstr")
if(pics != null) {
pics.value = pics.value + "@" + base64Data
}

做完上述事情,才能在web段提交图片的字符串信息过来;

然后服务器端这样来处理传递过来的图片信息:
Dim picstr() As String = jo("picstr").ToString().Split("@")
        Dim tp As String
        For i As Integer = 0 To picstr.Length-1
            Dim strimg As String = picstr(i)
            If strimg <> "" Then
                Dim mc = System.Text.RegularExpressions.Regex.Matches(strimg ,"data:image\/.+base64,")
                If mc.count >= 1 Then
                    strimg = strimg.Replace(mc(0).value,"")
                End If
                Dim bs As Byte() = Convert.FromBase64String(strimg)
                Dim stream As System.IO.Stream = New System.IO.MemoryStream(bs)
                Dim bmp As System.Drawing.Bitmap = New System.Drawing.Bitmap(stream)
                tp  = Guid.NewGuid().tostring & Rand.Next(10000,90000)
                bmp.Save( "D:\FTP\图片文件\新客活动\" & tp & ".jpg"  , System.Drawing.Imaging.ImageFormat.Jpeg)
            End If
        Next

结束;

 回到顶部
总数 11 上一页 1 2