Foxtable(狐表)用户栏目专家坐堂 → 移动开发,图片压缩上传不行。没有压缩


  共有2451人关注过本帖树形打印复制链接

主题:移动开发,图片压缩上传不行。没有压缩

帅哥哟,离线,有人找我吗?
chinawangsa
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:2342 威望:0 精华:0 注册:2013/12/5 11:11:00
移动开发,图片压缩上传不行。没有压缩  发帖心情 Post By:2024/1/15 14:19:00 [只看该作者]

移动开发,图片压缩上传不行。没有压缩,而且启用这个压缩脚本后,记录会再重增加一条。本来只新增一条记录的,却会保存两条同样的记录。应是这个压缩脚本的问题。
图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/15 14:35:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
chinawangsa
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:2342 威望:0 精华:0 注册:2013/12/5 11:11:00
  发帖心情 Post By:2024/1/15 15:41:00 [只看该作者]

改成 button 后可以压缩上传了,但还是有两个问题存在。
1.是点确定后,开始保存数据和上传图片,但提示上传失败,停留在原保存面,但退出后去查询,记录却保存了,

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


第2问题,就是打开可以上传多张图片,但我是想只能上传一张图片,因我这个控件是对应后面SQLserver数据库的二进制存储,不能一下上传多张图片。只能上传一张图片,但压缩需要打开这个功能。所以这两者之间有点矛盾了。怎么解决,只能选取一张图片,又能压缩上传呢。
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/1/15 15:41:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/15 16:17:00 [只看该作者]

贴出服务端这个页面的完整代码

 回到顶部
帅哥哟,离线,有人找我吗?
chinawangsa
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:2342 威望:0 精华:0 注册:2013/12/5 11:11:00
  发帖心情 Post By:2024/1/15 16:44:00 [只看该作者]

Dim e As RequestEventArgs = args(0)
Dim wb As New weui

Dim page As Integer = 0 '默认page为0,显示第一页
If e.GetValues.ContainsKey("page") Then '如果地址中有page参数
    Integer.TryParse(e.GetValues("page"), page) '提取page参数
End If

If e.PostValues.Count = 0 Then '生成增加订单网页
    wb.AddForm("", "form1", "wgcpadd.htm")
    Dim gjs As List(Of String) = DataTables("wwgcpfl").sqlGetValues("cpfl")
    With wb.AddInputGroup("form1", "ipg1", "外购产品添加")
        .AddSelect("cpfl", "产品分类", "|" & String.Join("|", gjs.ToArray)).Attribute = "" '调用js函数。
        .AddInput("hh", "货号", "text")
        .AddInput("pm", "品名", "text")
        .AddInput("cpmc", "产品名称", "text").Placeholder = "必须录入"
   
        .AddInput("bz", "备注", "text")
        With wb.AddInputGroup("form1", "ipg3", "产品描述(材质, 尺寸)")
            .AddTextArea("cpmx", 5)
        End With
        
        With wb.AddInputGroup("form1", "ipg2", "产品图片上传")
            With .AddUploader("up128", "", False)
                .AllowDelete = True '允许删除
                .Incremental = True '允许 重复选择文件或连续拍照
                '   .AllowAdd = True '可以更改上传
                .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
            End With
            With .AddUploader("up129", "", False)
                .AllowDelete = True '允许删除
                .Incremental = True '允许 重复选择文件或连续拍照
                ' .AllowAdd = True '可以更改上传
                .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
            End With
        End With
        
    End With
    
    
    
    
    With wb.AddButtonGroup("form1", "btg1", True)
        '   .Add("btn1", "确定", "submit")
        .Add("btn1", "确定", "button").Attribute = "" '调用js函数上传
        ' .Add("btn1", "确定", "button").Attribute = "" '调用js函数上传
        ' .Add("btn1","返回列表","ddgl.htm")
        .Add("mnuCancel", "取消", "", "wgcp.htm?page=" & page)
        
    End With
    
    wb.AddToast("", "tst1", "正在上传", 1)
    wb.AddToast("", "tst2", "上传成功", 0) 
    wb.AddToast("", "tst3", "上传失败", 0).Icon = "warn"
    wb.AppendHTML("<script src='./lib/wgcptp.js'></script>") '图片上传压缩用引入脚本文件
    wb.AppendHTML("<script src='./lib/brands3.js'></script>") '产品类别产生数据 引入脚本文件
    
Else '保存新增的订单
    
    ' MessageBox.Show ("添加新品")
    
    Dim nms2() As String = {"cpfl", "esthh", "cpmc"} '不能为空的列名数组
    For Each nm2 As String In nms2
        If e.PostValues.ContainsKey(nm2) = False Then '生成错误提示页
            '   MessageBox.Show ("资料不完整")
            If nm2 = "cpfl" Then
                nm2 = "产品分类"
            ElseIf nm2 = "hh" Then
                nm2 = "号"
            ElseIf nm2 = "cpmc" Then
                nm2 = "产品名称"
            End If 
            With wb.AddMsgPage("", "msgpage", "增加失败", nm2 & "列不能为空!")
                .icon = "Warn" '改变图标
                .AddButton("btn1", "返回").Attribute = ""
            End With
            e.WriteString(wb.Build)
            Return Nothing '必须返回 
        End If
    Next
    
    
    Dim dr5 As DataRow
    dr5 = DataTables("wwgcp").SQLFind("[esthh] = '" & e.PostValues("esthh") & "' ")
    If dr5 IsNot Nothing Then '如果找到的话
        '   MessageBox.Show ("添加新品已经存在")
        With wb.AddMsgPage("", "msgpage", "增加失败", "新号 " & e.PostValues("esthh") & " 已经存在,此号不能重复!")
            .icon = "Warn" '改变图标
            .AddButton("btn1", "返回").Attribute = ""
        End With
        e.WriteString(wb.Build)
        Return Nothing '必须返回 
    End If
    

    ' MessageBox.Show ("开始增加产品")
    Dim nms() As String = {"cpfl", "hh", "thh", "pm", "cpmc", "cpmx", "cpbz", "cpzx", "cpzxcc", "cpmjz", "moq", "nbdj", "txy", "ypf", "bz", "gys1", "gys2" } '重新定义了nms数组,增加了两列.
    Dim dr As DataRow = DataTables("wwgcp").AddNew()
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) Then
            dr(nm) = e.PostValues(nm)
        End If
    Next
    
    For Each key As String In e.Files.Keys
        If key = "up128" Then
            For Each fln As String In e.Files(key)
                e.SaveFile(key, fln, ProjectPath & "Attachments\" & fln)            
            Next
            dr.Lines("tpmc1") = e.Files(key)
            
        End If
        
        If key = "up129" Then
            For Each fln As String In e.Files(key)
                e.SaveFile(key, fln, ProjectPath & "Attachments\" & fln) 
            Next
            dr.Lines("tpmc2") = e.Files(key)
            
        End If
    Next
    dr.save()
    
    ' MessageBox.Show ("添加新品图片 " & wjll & " ")
    ' If wjll <> "" Then '二进图片上传
    Dim wjll As String = ""
    Dim wjll2 As String = ""
    Dim dr1 As DataRow = DataTables("wwgcp").SQLFind("esthh='" & e.PostValues("esthh") & "'")
    If dr1("tpmc1") <> "" Then
        wjll = ProjectPath & "Attachments\" & dr1("tpmc1")
        dr1.SQLInsertFile("tp1", wjll) '插入文件 
    End If
    If dr1("tpmc2") <> "" Then
        wjll2 = ProjectPath & "Attachments\" & dr1("tpmc2")
        dr1.SQLInsertFile("tp2", wjll2) '插入文件 
    End If 
    

    
    With wb.AddMsgPage("", "msgpage", "外购产品增加成功", "是否再增加") '增加订单成功提示信息
        .AddButton("btn1", "继续增加", "wgcpadd.htm")
        .AddButton("btn1", "返回列表", "wgcp.htm")
        
    End With
End If
e.WriteString(wb.Build) '生成网页

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/15 17:18:00 [只看该作者]

1、使用ajax提交的,成功必须返回OK,然后在js里进行跳转

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


2、使用js判断,比如

js函数
function upLoadCount() {
if (document.getElementById("up128_thumbnails").getElementsByTagName("li").length != 1) {
show("tst3", 2000);
return false;
}
return true
}

服务端代码

wb.AddForm("", "form1", "wgcpadd.htm").Attribute="onsubmit='return upLoadCount()'"

 回到顶部
帅哥哟,离线,有人找我吗?
chinawangsa
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:2342 威望:0 精华:0 注册:2013/12/5 11:11:00
  发帖心情 Post By:2024/1/16 14:12:00 [只看该作者]


压缩上传可以了。但第二个问题。就是上传1张以上的图片,加了给的JS码后,调出新的错误
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看
再有,我有两个上传的栏,这JS里只指定了UP128的。还有一个Up129的上传栏。怎么判张多张图片上传
[此贴子已经被作者于2024/1/16 15:28:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/16 15:57:00 [只看该作者]

这个出错提示是服务端的,和js没有什么关系

不管有多少个控件,判断方法都一样,复制代码放到上一个判断之后,改一下控件名称就行了,我就是故意只写一个的,就看你们会不会自己添加第2个控件的判断

 回到顶部