以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 增强版Uploader时好时坏 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194901) |
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/4 14:12:00 -- 增强版Uploader时好时坏 按照教程做的增强版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 -- 发布时间:2025/2/4 14:19:00 -- 如图,实际上传了5张,结果图片名字只保留了3个,但是实际上服务器只接收到了2张图片 ![]() ![]() |
||||
-- 作者:qinqinwo1114 -- 发布时间: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); } }
|
||||
-- 作者:有点蓝 -- 发布时间: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 |
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/7 20:43:00 -- 感谢,我测试测试 |
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/7 22:08:00 -- 测试了一下还是不成功,我把原代码上传,麻烦版主帮我看看,这个问题困扰了我一周了。。。。根据附件上的源代码,上传图片还是时好时坏,并且返回界面就一个OK界面; |
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/8 7:43:00 -- 麻烦蓝版给指导一下 |
||||
-- 作者:有点蓝 -- 发布时间:2025/2/8 9:02:00 -- 请上传实例测试 |
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/8 9:49:00 --
|
||||
-- 作者:qinqinwo1114 -- 发布时间:2025/2/8 9:49:00 -- 不好意思,我以为上传好了呢。。。。你看能否下载 |