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


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

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

帅哥哟,离线,有人找我吗?
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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/15 18:05:00 [只看该作者]

认认真真看这个例子

 

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

 

 


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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/16 9:17:00 [只看该作者]

用2楼的方法,用js判断和控制个数,如

 

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

alert(v1)

if(v1 > 1) {

   alert("个数不能超过1个")

   return false

}

 

 


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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/16 12:11:00 [只看该作者]

以下是引用yuweijie在2018/7/16 12:02:00的发言:
我加了日期比较,要上传当天日期的照片,但 通过.ScaleWidth = 100 压缩后,就不能判断了

 

你的意思是读取照片的拍摄时间?如这个? http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=78730&replyID=&skin=1

 

如果压缩以后就不能获取?


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


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

是的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/16 16:04:00 [只看该作者]

回复楼上,确实有你说的这个问题。

 

用js读取图片信息,然后赋值到网页那里,一起提交吧。

 

1、把exif.js拷贝到web/lib文件夹下

 

http://code.ciaoca.com/javascript/exif-js/version/exif-js.zip

 

http://code.ciaoca.com/javascript/exif-js/

 

2、httprequest事件,写代码

 

Dim fl As String = "c:\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",".htm",".html",".css",".zip",".rar" '这里加上了js扩展名
            e.WriteFile(fl)
            Return '这里必须返回
    End Select
End If


Select Case e.Path
    Case "test.htm", ""
        Dim wb As New weui
        wb.AddForm("","form1","receive.htm")
        With wb.AddInputGroup("form1","ipg1","文件上传")
            With .AddUploader("up128","照片",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/ajaxform.js'></script>") '引入脚本文件
        wb.AppendHTML("<script src='./lib/exif.js'></script>") '引入脚本文件
        wb.AppendHTML("<script>up128.addEventListener('change', function(e){EXIF.getData(e.target.files[0], function() {alert(EXIF.pretty(this));alert(EXIF.getTag(this, 'DateTime'))})},false );</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:\123.jpg") '保存接收到的文件
            Next
        Next
        e.WriteString("OK")
End Select

 

3、把弹出的值处理一下,赋值到你文本框里面即可。


 回到顶部
帅哥哟,离线,有人找我吗?
yuweijie
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/17 17:46:00 [只看该作者]

我测试没问题啊。红色代码改成自己的的。

 

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

alert(v1);


 回到顶部
总数 21 1 2 3 下一页