以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  使用增强Uploader方式上传文件显示上传成功但提示失败且有页面刷新系列问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=127697)

--  作者:cnhh
--  发布时间:2018/11/20 11:44:00
--  使用增强Uploader方式上传文件显示上传成功但提示失败且有页面刷新系列问题
 
 描述:

 1、以下函数(函数名称UploadFile)在项目HttpRequest事件中调用,函数代码如下:

 

Dim e As object =Args(0)
Dim wb As New weui
wb.AddForm("","form1","UploadFile.htm") ’
此处与Js中回调的页面UploadFile.htm一致
If e.PostValues.Count = 0 And e.Files.Count=0 Then\'
必须加上e.Files.Count=0 才能解决以上BUG
    With wb.AddInputGroup("form1","ipg22","
文件上传") \'带图片浏览的文件上传
        With .AddUploader("up1","
图片",True) \'True表示允许一次上传多个文件
            .AllowDelete = True \'
允许用户删除图片
            .Incremental = True \'
允许 重复选择文件或连续拍照
        End With
    End With
    With wb.AddButtonGroup("form1","btg1",True)
          .Add("btn1", "
确定", "button").Attribute= "" \'调用js函数上传
    End With
    wb.AddToast("","tst1", "
正在上传",1)
        wb.AddToast("","tst2", "
上传成功",0)
        wb.AddToast("","tst3", "
上传失败",0).Icon= "warn"
        wb.AppendHTML("<script src=\'./lib/MutiUploadImages.js\'></script>") \'
引入脚本文件
Else \'
加上e.Files.Count=0 解决同一页面上传时e.PostValues.Count 仍为 0导致无法响应提交后页面执行的问题
    For Each key As String In e.Files.Keys
        If key = "up1" Then
            For Each fln As String In e.Files(key)
                e.SaveFile(key, fln, ProjectPath & "Attachments\\" & fln)
            Next           
        End If
    Next
    \'
生成增加成功提示页面
    With wb.AddMsgPage("","msgpage","
上传成功", "影像上传") \'生成成功提示页
        .AddButton("btn1","
继续上传","UploadFile.htm")
        .AddButton("btn2","
返回","EditBaoxiaoMsg.htm")
    End With
End If
e.WriteString(wb.Build) \'
生成网页

 

  2、同时按增强Uploader使用说明采用Ajax方式在D:\\Web\\Lib目录下建立了MutiUploadImages.js文件,代码如下:

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

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

 

问题是:

1、可以选择多个文件上传了,但经查图片也上传成功,而提示的信息是上传失败,如下图:

图片点击可在新窗口打开查看

 

2、上传后提示消失后页面没有变化,仍是上传时的选择页面,上传后也没有清除选择的图片(没有执行UploadFile函数中的If else页面生成代码)

图片点击可在新窗口打开查看

 

3、在选择页面点击选择图片进入图片预览界面,点删除按钮,预览中是删除了,但如何返回刷新删除后的选择图片上传页面?

图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/11/20 12:21:00
--  

1、你要返回OK,才会提示上传成功,如

 

e.WriteString("OK")

 

而不是

 

e.WriteString(wb.Build) \'生成网页

 

2、刷新,请使用js处理,跳转到另一个网页,如

 

location="/成功了.htm"

 

3、参考如何删除图片 http://www.foxtable.com/mobilehelp/scr/0094.htm

 


--  作者:cnhh
--  发布时间:2018/11/20 17:59:00
--  
 谢谢!