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


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

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

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 

 


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

}

 

 


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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、把弹出的值处理一下,赋值到你文本框里面即可。


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 10:07:00 [显示全部帖子]

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

 

执行到哪里的js有问题?加入alert弹出调试了没有?或者打开浏览器的调试工具看提示了没有?

 

不然做个实例发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 12:32:00 [显示全部帖子]

上传具体foxtable实例测试。web文件夹也要发上来。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/29 11:52:00 [显示全部帖子]

暂时没有iphone测试,你直接测试8楼代码,分别弹出什么?

 

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>") '引入脚本文件


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/29 17:31:00 [显示全部帖子]

以下是引用yuweijie在2018/8/29 15:11:00的发言:
安卓手机弹出的属性比较多,但iphone手机只有5个了,其他属性都没有。
orientation:6
exififdpointer:38
colorspace:1
pixelxdimension:3264
pixelydimension:2448

 

测试了一下,iphone不支持获取图片的某些信息,这个无法解决。

 

对于iphone的图片,你可以把图片不压缩直接上传到服务器以后,再获取图片的信息值。

 

判断手机是什么系统,类似 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=121964&skin=0

 

 

 

 

 


 回到顶部