以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 压缩图片上传  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98916)

--  作者:zcgmxf
--  发布时间:2017/4/9 12:19:00
--  [求助] 压缩图片上传

 

老师,请教两个问题“”

1、下面的码执行时提示 上传失败 但文件夹和表里都有文件了,不过没有压缩。不知问题出在哪里?谢谢!

 

2、上传成功后在该页面刷新又会增加一行,如何避免?谢谢!

 

Dim wb As New weui
Select Case e.Path
    Case "addnew.htm"
        If e.PostValues.Count = 0 Then
            wb.AddForm("","form1","addnew.htm")
            With wb.AddInputGroup("form1","ipg1","增加员工")
                .AddInput("姓名","姓名","Text") \'前一个"姓名"是ID,后一个"姓名"是标题
                .AddInput("年龄","年龄","number")
                .AddSelect("学历","学历","大专|本科|硕士|博士")
            With .AddUploader("zp","照片",True)
                .AllowDelete = True \'允许删除
                .Incremental = True \'允许重复选择文件或连续拍照
                .ScaleWidth = 400 \'自动压缩图片宽度为400个像素,高度等比例压缩
            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/scystp.js\'></script>") \'引入脚本文件

            e.WriteString(wb.Build)
        Else
            Dim nms() As String = {"姓名","年龄","学历"}
            Dim dr As DataRow = DataTables("员工").AddNew()
            For Each nm As String In nms
                dr(nm) = e.PostValues(nm)
            Next
            For Each key As String In e.Files.Keys
                If key = "zp" Then
                    For Each fln As String In e.Files(key)
                        e.SaveFile(key, fln, "D:\\web\\Image\\" & fln)
                    Next
                    dr.Lines("照片") = e.Files(key)
                End If
            Next
            \'保存并生成增加成功提示页面
            dr.save()
            With wb.AddMsgPage("","msgpage","增加成功", "好好学习,天天向上") \'生成成功提示页
                .AddButton("btn1","继续增加","addnew.htm")
            End With
            e.WriteString(wb.Build)
        End If
End Select

[此贴子已经被作者于2017/4/9 13:21:08编辑过]

--  作者:有点色
--  发布时间:2017/4/9 22:21:00
--  

1、要用这种方式提交表单

 

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

 

2、判断姓名等信息是否已经存在,如果存在的,就不执行新增等操作。


--  作者:zcgmxf
--  发布时间:2017/4/10 13:30:00
--  

色老师好!我是按照帮助中做的,测试例子没问题,那个问题我再慢慢去解决。

 

我想请教 如何判断没有选择照片?如何调用手机的相机?如何在上传照片时只能上传当时拍摄的照片而不能在手机中选择照片?谢谢!


--  作者:有点蓝
--  发布时间:2017/4/10 14:39:00
--  
图片数量判断可以参考这位狐友的用法:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98621&skin=0




--  作者:有点色
--  发布时间:2017/4/10 14:39:00
--  

1、看懂帮助文档这个提示

 

要实现图片的压缩上传,单单设置ScaleWidth或ScaleHeight是不够的,我们还需要将Uploader的Incremental属性设置为True,所以和上一节一样,我们只能用submitAjaxForm函数提交表单,不过代码依旧很简单。

 

2、可以用js来判断是否选择了照片,选择了多少个图片

 

function validit_images(){
  var v1 = document.getelementbyId("up1_thumbnails").getelementsbytagname("li").length;
  alert(v1);
}

 

3、你可以调用html5代码来启动相机,或者是使用微信的js-sdk来实现

 

https://www.baidu.com/baidu?wd=html5+%E8%B0%83%E7%94%A8%E6%91%84%E5%83%8F%E5%A4%B4&tn=monline_4_dg&ie=utf-8

 

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

 

https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.8138827698946394#txjk1

 

4、目前网页无法做到一定是拍摄的照片。不过你可以读取图片的Exif信息,获取拍摄时间、修改时间等,判断是不是当时拍摄的

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=78730&skin=0