Foxtable(狐表)用户栏目专家坐堂 → 增强版Uploader时好时坏


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

主题:增强版Uploader时好时坏

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


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
增强版Uploader时好时坏  发帖心情 Post By:2025/2/4 14:12:00 [只看该作者]

按照教程做的增强版Uploader,但是上传多张图片的时候,有的时候上传成功,有的时候上传了5张图片,但是结果只有N张成功了(N小于5),这个N也是随机的,有的时候能够全部成功,有的时候只成功1张,源代码如下:

函数EditDetail代码如下:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim Page As Integer '页码变量
Dim zt As String
Dim jgdate As String
Dim wxgdid As String
Dim type As Integer = 1
Dim oid As String


wb.AppendHTML("<link rel='stylesheet' href='./weui/exweui.css'/>", True)
wb.AppendHTML("<script src='./weui/exweui.js' ></script>", True)

If e.GetValues.ContainsKey("wxgdid") Then '如果地址中有page参数
    wxgdid = e.Values("wxgdid") '提取page参数
End If
Dim dr As DataRow = DataTables("维修工单明细表").SQLFind("[维修工单ID] = '" & wxgdid & "'")
Dim pr As DataRow = DataTables("维修任务明细表").SQLFind("[维修任务ID]='" & dr("维修任务ID") & "'")
If dr IsNot Nothing Then
    oid = dr("维修任务ID")
End If 


With wb.AddInputGroup("form1", "ipg1", "查看工单")'如果本身就有ID,就是编辑任务,如果没有就是新增任务
    With .AddInput("维修任务ID", "任务ID", "text")
        .Value = dr("维修任务ID")
        .Readonly = True
    End With
    With .AddInput("维修工单ID", "工单ID", "text")
        .Value = dr("维修工单ID")
        .Readonly = True
    End With
    With .AddInput("jgdate", "竣工日期", "text")
        .Value = pr("jgdate")
        .Placeholder = "自动匹配"
        .Readonly = True
    End With
    With .AddInput("联系人", "联系人", "text")
        .Value = pr("联系人")
        .Readonly = True
    End With
    With .AddInput("联系电话", "联系电话", "text")
        .Value = pr("联系电话")
        .Readonly = True
    End With
    With .AddInput("售后管家", "售后管家", "text")
        .Value = pr("shgj")
        .Readonly = True
    End With
    With .AddInput("管家电话", "管家电话", "text")
        .Value = pr("gjphone")
        .Readonly = True
    End With
    With .AddInput("项目地址", "项目地址", "text")
        .Value = pr("项目地址")
        .Readonly = True
    End With
    With .AddInput("品牌", "品牌", "text")
        .Value = dr("品牌")
        .Readonly = True
    End With
    With wb.AddInputGroup("form1", "ipg3", "任务描述*")
        With .AddTextArea("问题描述", 4)
            .Value = pr("问题描述")
            .Readonly = True
        End With
    End With
    With wb.AddInputGroup("form1", "ipg4", "工单描述*")
        With .AddTextArea("工单描述", 4)
            .Value = dr("问题详情")
            .Readonly = True
        End With
    End With
    
    
    '元素id统一用小写英文,和JS保持一致,否则容易报错
    If dr.IsNull("预约上门日期") Then
        
    Else 
        With .AddInput("yysmdate", "预约上门日期", "datetime-local")
            .Value = dr("预约上门日期")
        End With 
    End If
End With


If dr IsNot Nothing Then
    zt = dr("维修工单状态")
End If 

Select Case zt
    Case "待接单"
        With wb.AddButtonGroup("form1", "btg1")
            .Add("接单", "接单", "submit").Value = zt'接单时间填写、状态改为待邀约
        End With 
    Case "待邀约"
        With wb.AddInputGroup("form1", "ipg2")
            .AddInput("smdate", "预约上门时间", "datetime-local")
        End With
        With wb.AddButtonGroup("form1", "btg2")
            .Add("确定", "确定", "submit", "").Value = zt
        End With 
    Case "待上门"
        With wb.AddInputGroup("form1", "ipg2")
            .AddInput("smdate", "实际上门时间", "datetime-local")
        End With
        With wb.AddButtonGroup("form1", "btg3")
            .Add("qddate", "确定", "submit", "").Value = zt
        End With 
    Case "维修中"
        With wb.AddInputGroup("form1", "ipg22", "编辑维修报告")
            With .AddSelect("一级类目", "一级类目", "|" & DataTables("维修类目表").GetComboListString("一级类目"))
                .Attribute = """
            End With
            With .AddSelect("二级类目", "二级类目", "")
                .Attribute = """
            End With
            With .AddSelect("三级类目", "三级类目", "")
                .Attribute = """
            End With
            With .AddSelect("四级类目", "四级类目", "")
                .Attribute = """
            End With
            .AddSelect("五级类目", "原因分析", "")
            .AddInput("人工费", "人工费", "number")
            With wb.AddInputGroup("form1", "ipg11", "人工费说明(超出定额必须说明原因并提供水印相机证据)")
                .AddTextArea("工费说明", 2)
            End With
            .AddInput("材料费", "材料费", "number")
            With wb.AddInputGroup("form1", "ipg12", "材料费说明(提供详细说明、收据、现场使用水印相机证据)")
                .AddTextArea("料费说明", 2)
            End With
            With wb.AddInputGroup("form1", "ipg42", "维修前照片")  
                With .AddUploader("up11", "", True) 'True表示允许一次上传多个文件
                    .AllowDelete = True '允许删除
                    .Incremental = True'允许重复选择照片,也就是允许选择多张照片
                End With
            End With
            With wb.AddInputGroup("form1", "ipg52", "维修后照片")
                With .AddUploader("up12", "", True) 'True表示允许一次上传多个文件
                    .AllowDelete = True
                    .Incremental = True
                End With
            End With
            With wb.AddButtonGroup("form1", "btg12")
                With .Add("editreport", "提交维修报告", "submit", "")
                    .Value = zt
                    .Attribute = "" '调用js函数上传
                End With
            End With
            wb.AddToast("", "tst1", "正在上传", 1)
            wb.AddToast("", "tst2", "上传成功", 0)
            wb.AddToast("", "tst3", "上传失败", 0).Icon = "warn"
        End With
    Case "待审核"
        'With .AddInput("smdate", "实际上门日期", "datetime-local")
         '   .Value = dr("实际上门日期")
        'End With 
        With wb.AddInputGroup("form1", "ipg22", "审核维修报告")
            Dim s1 As String = "|" & DataTables("维修类目表").GetComboListString("一级类目") & "|"
            s1 = s1.Replace("|" & dr("一级类目") & "|", "|[" & dr("一级类目") & "]|").TrimEnd("|")
            With .AddSelect("一级类目", "一级类目", s1)
                .Attribute = """
                .Enabled = False
            End With
            Dim s2 As String = "|" & DataTables("维修类目表").GetComboListString("二级类目") & "|"
            s2 = s2.Replace("|" & dr("二级类目") & "|", "|[" & dr("二级类目") & "]|").TrimEnd("|") 
            With .AddSelect("二级类目", "二级类目", s2)
                .Attribute = """
                .Enabled = False
            End With
            Dim s3 As String = "|" & DataTables("维修类目表").GetComboListString("三级类目") & "|"
            s3 = s3.Replace("|" & dr("三级类目") & "|", "|[" & dr("三级类目") & "]|").TrimEnd("|") 
            With .AddSelect("三级类目", "三级类目", s3)
                .Attribute = """
                .Enabled = False
            End With
            Dim s4 As String = "|" & DataTables("维修类目表").GetComboListString("四级类目") & "|"
            s4 = s4.Replace("|" & dr("四级类目") & "|", "|[" & dr("四级类目") & "]|").TrimEnd("|") 
            With .AddSelect("四级类目", "四级类目", s4)
                .Attribute = """
                .Enabled = False
            End With
            
            Dim s5 As String = "|" & DataTables("维修类目表").GetComboListString("五级类目") & "|"
            s5 = s5.Replace("|" & dr("五级类目") & "|", "|[" & dr("五级类目") & "]|").TrimEnd("|") 
            .AddSelect("五级类目", "原因分析", s5).Enabled = False
            With .AddInput("人工费", "人工费", "number")
                .Value = dr("人工费")
                .Readonly = True
            End With 
            
            With wb.AddInputGroup("form1", "ipg11", "人工费说明(超出定额必须说明原因并提供水印相机证据)")
                With .AddTextArea("工费说明", 2)
                    .Value = dr("人工费说明")
                    .Readonly = True
                End With 
            End With
            
            With .AddInput("材料费", "材料费", "number")
                .Value = dr("材料费")
                .Readonly = True
            End With 
            With wb.AddInputGroup("form1", "ipg12", "材料费说明(提供详细说明、收据、现场使用水印相机证据)")
                With .AddTextArea("料费说明", 2)
                    .Value = dr("材料费说明")
                    .Readonly = True
                End With 
            End With
            
            With wb.AddInputGroup("form1", "ipg42", "维修前照片")
                With .AddUploader("up11", "", True) 'True表示允许一次上传多个文件
                    .AllowAdd = False '关闭文件上传功能
                    If dr("维修前照片") <> "" Then
                        Dim images() As String = dr("维修前照片").Split(vbcrlf)
                        
                        For index As Integer = 0 To images.Length - 2
                            images(index) = images(index).Trim()
                            'MessageBox.Show(images(index))
                            .AddImage("./workimages/" & images(index))
                        Next
                        '.AddImage("./workimages/WXQ250202001-1_2.jpg")
                    End If 
                End With
            End With
            
            With wb.AddInputGroup("form1", "ipg52", "维修后照片")
                With .AddUploader("up12", "", True) 'True表示允许一次上传多个文件
                    .AllowDelete = True
                    .Incremental = True
                End With
            End With
            
            With wb.AddButtonGroup("form1", "btg12")
                With .Add("sh", "审核", "submit", "")
                    .Value = zt
                    '.Attribute = "" '调用js函数上传
                End With
                With .Add("bh", "驳回", "submit", "")
                    .Value = zt
                    '.Attribute = "" '调用js函数上传
                End With
            End With
        End With
End Select
wb.AddForm("", "form1", "savechange.htm?oid=" & oid & "&zt=" & zt & "&wxgdid=" & wxgdid & "&type=" & type)

wb.AppendHTML("<script src='./lib/ajaxform.js'></script>") '引入脚本文件
wb.AppendHTML("<script src='./lib/order.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页




HttpRequest中 savechange.htm 代码如下:

Case "savechange.htm"
        Dim oid As String
        Dim zt As String
        Dim wxgdid As String
        Dim smdate As Date
        Dim dr As DataRow
        Dim drd As DataRow
        Dim type As String

        If e.Values.ContainsKey("oid") Then
            oid = e.Values("oid")
            dr = DataTables("维修任务明细表").SQLFind("[维修任务ID] = '" & oid & "'")
        End If
        If e.Values.ContainsKey("zt") Then
            zt = e.Values("zt")
        End If
        If e.Values.ContainsKey("smdate") Then
            smdate = e.Values("smdate")
        End If
        If e.Values.ContainsKey("wxgdid") Then
            wxgdid = e.Values("wxgdid")
            drd = DataTables("维修工单明细表").SQLFind("[维修工单ID]='" & wxgdid & "'")
        End If
        If e.Values.ContainsKey("type") Then
            type = e.Values("type")
        End If
        
        Select Case zt
            Case "待接单"
                If type = 0 Then'任务
                    If dr IsNot Nothing Then
                        dr("维修任务接单日期") = Date.Now
                        dr("维修任务状态") = "待邀约"
                        dr.Save
                    End If
                    Else'工单
                    If drd IsNot Nothing Then
                        drd("维修工单接单日期") = Date.Now
                        drd("维修工单状态") = "待邀约"
                        drd.Save
                    End If
                End If 
            Case "待邀约"
                If type = 0 Then
                    If dr IsNot Nothing Then
                        dr("维修任务预约上门日期") = smdate
                        dr("维修任务状态") = "待拆单"
                        dr.Save
                    End If
                Else
                    If drd IsNot Nothing Then
                        drd("预约上门日期") = smdate
                        drd("维修工单状态") = "待上门"
                        drd.Save
                    End If
                End If
            Case "待上门"
                If type = 0 Then
                    If dr IsNot Nothing Then
                        dr("维修任务实际上门日期") = smdate
                        dr("维修任务状态") = "维修中"
                        dr.Save
                    End If
                Else
                    If drd IsNot Nothing Then
                        drd("实际上门日期") = smdate
                        drd("维修工单状态") = "维修中"
                        drd.Save
                    End If
                End If 
            Case "维修中"
                If type = 0 Then'任务
                    If dr IsNot Nothing Then
                        dr("维修任务完成日期") = Date.Now
                        dr("维修任务状态") = "已完成"
                        dr.Save
                    End If
                Else'工单
                    If drd IsNot Nothing Then
                        drd("提交维修报告日期") = Date.Now
                        drd("维修工单状态") = "待审核"
                        drd("一级类目") = e.Values("一级类目")
                        drd("二级类目") = e.Values("二级类目")
                        drd("三级类目") = e.Values("三级类目")
                        drd("四级类目") = e.Values("四级类目")
                        drd("五级类目") = e.Values("五级类目")
                        drd("人工费") = e.Values("人工费")
                        drd("材料费") = e.Values("材料费")
                        drd("人工费说明") = e.Values("工费说明")
                        drd("材料费说明") = e.Values("料费说明")
                        drd.Save
                    End If
                End If 
        End Select
        
        
        If type = 0 Then'0表示任务,1表示工单
            Functions.Execute("ListGroup", e)
        Else'工单
            Dim imgname() As String = drd("维修前照片").Split(vbcrlf)
            Dim n As Integer = imgname.Length
            'MessageBox.Show("维修前照片内容长度为:" & n)
            For Each key As String In e.Files.Keys
                'MessageBox.Show("上传的元素ID为:" & key)
                If key = "up11" Then
                    For Each fln As String In e.Files(key)
                        fln = fln.Trim()
                        'MessageBox.Show("图片名称为:" & fln)'fln是每个图片的名字
                        Dim mz() As String = fln.Split(".") 'mz()是后缀文件格式
                        e.SaveFile(key, fln, "d:\web\workimages\" & "WXQ" & drd("维修工单ID") & "_" & n & "." & mz(1))
                        drd("维修前照片") = drd("维修前照片") & "WXQ" & drd("维修工单ID") & "_" & n & "." & mz(1) & vbcrlf
                        n = n + 1
                    Next
                End If
                If key = "up12" Then
                    For Each fln As String In e.Files(key)
                        Dim mz() As String = fln.Split(".")
                        e.SaveFile(key, fln, "d:\web\workimages\" & "WXH" & drd("维修工单ID") & "_" & n & "." & mz(1))
                        drd("维修后照片") = drd("维修后照片") & "WXH" & drd("维修工单ID") & "_" & n & "." & mz(1) & vbcrlf
                        n = n + 1
                    Next
                End If
            Next
            drd.Save
            Functions.Execute("ListDetail", e) 
        End If 
    Case "editdetail.htm"
        Functions.Execute("EditDetail",e)


请教红蓝狐,代码问题出现在哪里,有的时候是好的,有的时候是不好的。。。。。实际上传M张图片,成功了N张,(N≤M);


 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/4 14:19:00 [只看该作者]

如图,实际上传了5张,结果图片名字只保留了3个,但是实际上服务器只接收到了2张图片
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20250204141811.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/4 14:21:00 [只看该作者]

D:/web/lib/ajaxform.js 代码如下

function submitForm(){
    show("tst1",2000);
    var result = submitAjaxForm('form1','afterSubmit');
}

function afterSubmit(result){
    hide("tst1");
    if (result=='OK') {
        show("tst2");
        location="upload.htm";
    }
    else{
        show("tst3",2000);
    }
}

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112347 积分:571985 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/5 9:18:00 [只看该作者]

使用了Incremental就必须只能使用js上传:http://www.foxtable.com/mobilehelp/topics/0106.htm,并且按钮里不能使用submit参数,只能使用button参数:http://www.foxtable.com/mobilehelp/topics/0057.htm


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/7 20:43:00 [只看该作者]

感谢,我测试测试

 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/7 22:08:00 [只看该作者]

测试了一下还是不成功,我把原代码上传,麻烦版主帮我看看,这个问题困扰了我一周了。。。。根据附件上的源代码,上传图片还是时好时坏,并且返回界面就一个OK界面;图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/8 7:43:00 [只看该作者]

麻烦蓝版给指导一下

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112347 积分:571985 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/8 9:02:00 [只看该作者]

请上传实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/8 9:49:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:源代码.txt


 回到顶部
帅哥哟,离线,有人找我吗?
qinqinwo1114
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1362 威望:0 精华:0 注册:2013/2/21 21:43:00
  发帖心情 Post By:2025/2/8 9:49:00 [只看该作者]

不好意思,我以为上传好了呢。。。。你看能否下载

 回到顶部
总数 15 1 2 下一页