以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]增强Uploader帮助中的源代码测试不能通过  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174505)

--  作者:程兴刚
--  发布时间:2022/1/18 16:27:00
--  [求助]增强Uploader帮助中的源代码测试不能通过
求助,增强Uploader帮助中的源代码测试过程中,点击确定不能通过,网页无反应,请帮助解答:

http://www.foxtable.com/mobilehelp/index.htm?page=0106.htm

设计过程:

1、在"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);
    }
}

提示: 这里的submitAjaxForm是通过异步方式运行的,用回调函数接收服务器返回的结果,因为如果用同步方式运行,将无法显示“正在上传”的提示。

2、HttpRequest事件代码:

Select Case e.Path
    Case "upload.htm"
        Dim wb As New weui
        wb.AddForm("","form1","receive.htm")
        With wb.AddInputGroup("form1","ipg1","
文件上传")
            With .AddUploader("up128","
照片",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/ajaxform.js\'></script>"\'
引入脚本文件
        e.WriteString(wb.Build) \'
生成网页
    Case "receive.htm"
        For Each key As String In e.Files.Keys
            For Each fln As String In e.Files(key)
                e.SaveFile(key,fln,"d:\\web\\uploadfiles\\" & fln) \'
保存接收到的文件
            Next
        Next
        e.WriteString("OK")

End
 Select




--  作者:有点蓝
--  发布时间:2022/1/18 16:36:00
--  
打开浏览器开发者工具调试,看看js有没有执行到?或者加调试代码

function afterSubmit(result){
alert(result);//这里能不能弹出提示,弹出什么内容?
    hide("tst1");
    if (result==\'OK\') {
        show("tst2");
        location="upload.htm";
    }
    else{
        show("tst3",2000);
    }
}

服务端代码调试能不能弹出?
    Case "receive.htm"
msgbox(e.Files.Keys.count)
        For Each key As String In e.Files.Keys
            For Each fln As String In e.Files(key)
                e.SaveFile(key,fln,"d:\\web\\uploadfiles\\" & fln) \'
保存接收到的文件
            Next
        Next
        e.WriteString("OK")

End
 Select

--  作者:狐狸爸爸
--  发布时间:2022/1/18 16:48:00
--  
ajaxform.js文件有没有放在d:\\web\\lib目录下?

不要直接放在d:\\web\\下面哦
[此贴子已经被作者于2022/1/18 16:48:30编辑过]

--  作者:狐狸爸爸
--  发布时间:2022/1/18 16:59:00
--  

我照着帮助做了个例子,没有任何问题:

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目365.foxdb



搞不定,就连续客服QQ: 800014337,远程看一下。

这些例子都经过测试,除非你的js文件名错了,或者路径不对。
[此贴子已经被作者于2022/1/18 16:59:55编辑过]

--  作者:狐狸爸爸
--  发布时间:2022/1/18 17:05:00
--  
注意,本地测试速度很快,单击确定按钮很快就上传成功,瞬间完成,然后又回到初始状态,直接看网页你并不知道是否已经成功。

你可以看看接收目录下, 是否已经收到文件。

你也可以让提示内容多显示一会,例如显示3秒:

 wb.AddToast("","tst2", "上传成功",0).msec = 3000
[此贴子已经被作者于2022/1/18 17:08:05编辑过]

--  作者:狐狸爸爸
--  发布时间:2022/1/18 17:18:00
--  
接收目录是:D:\\web\\uploadfiles

要在这里看,别搞错了

--  作者:程兴刚
--  发布时间:2022/1/18 17:38:00
--  

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

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

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看
因为我笨,无奈只能上传截图,各位看看到底哪里和帮助文件不同:


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


--  作者:程兴刚
--  发布时间:2022/1/18 17:54:00
--  
http://www.foxtable.com/bbs/UploadFile/2022-1/202211817464652150.png
[此贴子已经被作者于2022/1/18 17:54:39编辑过]

--  作者:有点蓝
--  发布时间:2022/1/18 20:56:00
--  
js文件扩展名不对,你文件完整名称是ajaxform.js.txt,把后缀.txt去掉。建议把系统的扩展名全部显示出来,不然很多时候容易搞错的
--  作者:程兴刚
--  发布时间:2022/1/18 21:11:00
--  
蓝版,昨天晚上就按帮助文件1、在"d:\\web"目录下,建立一个子目录lib,在这个目录建立一个文本文件,文件名为"ajaxform.js",这样操作的,调试到后来始终找不到文件,后来通过属性发现这么保存不行,后缀名多了.txt,于是,复制web文件夹的exweui.js,删除里面所有的内容后按帮助第一步操作,复制进去代码再保存的,然后修改其名称,看我第一个截图就知道,这个问题已经不存在!