以文本方式查看主题

-  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=102999)

--  作者:客家阿哥
--  发布时间:2017/6/29 0:09:00
--  测试增强Uploader不成功
http://www.foxtable.com/mobilehelp/scr/0106.htm

使用苹果手机,拍照上传,第二次上传的时候,会把第一次上传的覆盖

--  作者:狐狸爸爸
--  发布时间:2017/6/29 8:32:00
--  
这些通过严格测试的。
1、下载覆盖weui,确保你用的weui是最新的。
2、下载安装foxtable,确保你用的foxtable是最新的。
3、实在不行,换个浏览器

--  作者:有点色
--  发布时间:2017/6/29 8:41:00
--  

 是不是同名了?你在httprequest事件那里处理的时候,保存如果同名就会覆盖

 

http://www.foxtable.com/mobilehelp/scr/0033.htm

 


--  作者:客家阿哥
--  发布时间:2017/6/29 13:16:00
--  

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事件代码:

Dim fl As String = "d:\\web\\" & e.path
If
 filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"
            e.WriteFile(fl)
            Return \'
这里必须返回
    End Select

End
 If
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














用的就是这段代码,一个子没改。前后两次拍照一起上传上传名字都是image.jpg,导致覆盖。如果拍两张一起上传,第二张的名字image(1).jpg


--  作者:狐狸爸爸
--  发布时间:2017/6/29 14:31:00
--  
修改下面的代码,如果存在同名文件,就给文件加一个递增的序号,原理和三楼一样:

    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")

实际开发的时候,应该根据某列的值(例如主键)来命名文件。
[此贴子已经被作者于2017/6/29 14:33:08编辑过]

--  作者:客家阿哥
--  发布时间:2017/6/29 22:20:00
--  
用了三楼的代码,解决了问题。

还有一个问题,网页中有表单数据和图片上传,那个按钮的代码怎么写,可以同时提交表单数据和上传图片?

--  作者:有点色
--  发布时间:2017/6/29 22:22:00
--  
 你的表单是form1,提交的时候图片和表单其余值,一起发送到服务器的。根据 postvalues 可以获取值。