Foxtable(狐表)用户栏目专家坐堂 → 关于图片上传压缩的问题


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

主题:关于图片上传压缩的问题

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
关于图片上传压缩的问题  发帖心情 Post By:2018/7/14 20:39:00 [显示全部帖子]

要实现的目标是:1.只能拍照上传一张图片;2.压缩图片大小到1M左右。    下面的代码试了不会压缩,要怎么改?        

          With wb.AddInputGroup("form3","ipg3","文件上传") '文件上传
                With .AddUploader("up1","请上传一张检查实时图片",False)
                    .AllowDelete = True '允许删除
                    .Incremental = False '不允许重复选择文件或连续拍照
                    .ScaleWidth = 100 '自动压缩图片宽度为100个像素,高度等比例压缩
                    .TextPosition = 0 '标题靠左
                End With
            End With

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/15 23:11:00 [显示全部帖子]

看了,例子中一定要.Incremental = True '这样就控制不了上传照片的张数,还有其他办法吗?

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/16 12:02:00 [显示全部帖子]

我加了日期比较,要上传当天日期的照片,但 通过.ScaleWidth = 100 压缩后,就不能判断了

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/16 13:38:00 [显示全部帖子]

是的

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/17 13:35:00 [显示全部帖子]

又回到了原来的问题,只要设置了.Incremental = True

var v1 = document.getElementById("up1_thumbnails").getElementsByTagName("li").length;

alert(v1);

无论拍了几张照,跳出的始终都是0


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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/17 21:30:00 [显示全部帖子]

可以了,是我把下划线后面去掉的原因。但又碰到新问题,因为upload无法对只能通过拍照上传进行控制,当用户通过选择本地图片上传时就会提示length错误。

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/18 12:00:00 [显示全部帖子]

        wb.AddForm("","form3","saddcheck2.htm")'接收数据的网页为"saddcheck.htm"
        With wb.AddInputGroup("form3","ipg1","设备信息")
            .AddInput("mingc1","名称:","text")
            .AddInput("xingh1","型号:","text")
            .AddInput("did1","地点:","text")
        End With
        With wb.AddInputGroup("form3","ipg2","检查情况")
            With .AddInput("rq","检查日期","date")
                .value = Format(Date.Today,"yyyy-MM-dd")
            End With
            With .AddInputCell("ic2") '通过InputCell增加输入框
                .AddSelect("jg","正常|不正常",0) '增加下拉列表,0表示显示在左边
                .AddInput("bz","text",1).PlaceHolder = "备注"  '增加输入框,1表示显示在中间
            End With
            With wb.AddInputGroup("form3","ipg3","上传一张检查图片") '文件上传
                With .AddUploader("up1","",True)
                    .AllowDelete = True '允许删除
                    .Incremental = True
                    .ScaleWidth = 400 '自动压缩图片宽度为100个像素,高度等比例压缩
                End With
                .AddHidenValue("pdate","2018-01-01")
            End With
        End With
        wb.appendHTML("<script>up1.setAttribute('capture','camera');up1.setAttribute('accept','image/*');</script>")'直接调用摄像头
        wb.AppendHTML("<script src='./lib/exif.js'></script>") '引入脚本文件
        wb.AppendHTML("<script>up1.addEventListener('change', function(e){EXIF.getData(e.target.files[0], function() {document.getElementById('pdate').value=EXIF.getTag(this, 'DateTime')})},false );</script>")    
        With wb.AddButtonGroup("form3","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/submit_check_images.js'></script>") '引入脚本文件
        e.WriteString(wb.Build) '生成网页


js 代码----------------

function submitForm_images(){
  var v1 = document.getElementById("up1_thumbnails").getElementsByTagName("li").length;
 if(v1 < 1){
  showTopTips("toptip1","请拍摄一张检查照上传!",2000);
  return false;
  }
 if(v1 > 1){
  showTopTips("toptip1","检查照只可以上传1张!",2000);
  return false;
  }
  show("tst1",2000);
  var result = submitAjaxForm('form3','afterSubmit');

}

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


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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/18 12:34:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:项目,HttpRequest
详细错误信息:
索引和长度必须引用该字符串内的位置。
参数名: length

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/7/18 14:19:00 [显示全部帖子]

可以了,是在服务器端处理函数有问题,谢谢各位版主

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


加好友 发短信
等级:幼狐 帖子:188 积分:1904 威望:0 精华:0 注册:2017/12/20 20:41:00
  发帖心情 Post By:2018/8/29 11:30:00 [显示全部帖子]

安卓的没问题了,但如果是IPHONE手机,就无法获取图片日期,wb.AppendHTML("<script>up1.addEventListener('change', function(e){EXIF.getData(e.target.files[0], function() {document.getElementById('pdate').value=EXIF.getTag(this, 'DateTime')})},false );</script>")    
在JS中通过alert(v2)弹出undefine

 回到顶部
总数 12 1 2 下一页