Foxtable(狐表)用户栏目专家坐堂 → uploader上传图片后,如何验证图片数量


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

主题:uploader上传图片后,如何验证图片数量

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/30 22:19:00 [显示全部帖子]

.AddImage("./shz/d/" & UrlEncode(zhaop),"./shz/d/" & UrlEncode(zhaop))

上面代码是已经保存了的图片,在别的网页的引用
前面是小图,后面是大图

问下:
将一张照片存到2列,一列宽带改为400保存,另一列宽度改为100保存?

以下是界面生成页面:images.htm
Dim e As RequestEventArgs = args(0)                            '注册第7页,上传照片
Dim wb As New weui
If e.PostValues.Count = 0 Then
    wb.AddTopTips("","toptip1","") '用于显示动态错误提示
    'wb.AddPageTitle("","pageheader","***","*********")
    With wb.AddArticle("","ar1")
        .AddImage("./images/langwo/logo1.jpg")
        .Attribute = "style='padding:0em;'"
    End With
    wb.AddForm("","form1","valid_images.htm")
    With wb.AddInputGroup("form1","ipg1","展示照(选择1张靓照即可)") '文件上传(1个)
        With.AddUploader("up1","",False)
        .AllowDelete = True '允许用户删除图片
        .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩,需要将这张照片保存宽100,以便后续代码引用,怎么做?
    End With
End With
With wb.AddInputGroup("form1","ipg22","生活照(选择4张以上靓照)") '带图片浏览的文件上传(最少4个)
    With.AddUploader("up4","",True) 'True表示允许一次上传多个文件
    .AllowDelete = True '允许删除
    .Incremental = True '允许 重复选择文件或连续拍照
    .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
End With
End With
With wb.AddButtonGroup("form1","btg1",True)
    .Add("btn1", "提交", "button").Attri-bute= "on-click='validit_images()'" '调用js函数上传
End With
wb.AddToast("","tst1", "正在上传",1)
wb.AddToast("","tst2", "上传成功",0)
wb.AddToast("","tst3", "上传失败",0).Icon= "warn"
wb.AppendHTML("<script src='./lib/ajaxform_images.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
End If

以下是保存图片页面:valid_images.htm
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Dim wb As New weui
Dim NewName As String '应该是照片的新名字
Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
Dim dr As DataRow = DataTables("会员资料").sqlFind("会员编号 = '" & drbianh & "'")

If dr IsNot Nothing Then                           '测试代码:msgbox(e.PostValues("isr"))
    For Each key As String In e.Files.Keys
        If key = "up1" Then
            For Each fln As String In e.Files(key)
                Dim ext As String = fln.Split(".")(1)
                NewName = Format(Date.Now, "yyyyMMddHHmmss") & Rand.Next(10000,99999) & "." & ext
                e.SaveFile(key, fln, "e:\web\zsz\d\" & Format(Date.Today, "yyyyMM") & "\" & NewName)
                dr("展示照") &= iif(dr.IsNull("展示照"), "", vbcrlf) & Format(Date.Today, "yyyyMM") & "\" & NewName
            Next
        End If
    Next
    For Each key1 As String In e.Files.Keys
        If key1 = "up4" Then
            For Each fln1 As String In e.Files(key1)
                Dim ext1 As String = fln1.Split(".")(1)
                NewName = Format(Date.Now, "yyyyMMddHHmmss") & Rand.Next(10000,99999) & "." & ext1
                e.SaveFile(key1, fln1, "e:\web\shz\d\" & Format(Date.Today, "yyyyMM") & "\" & NewName)
                dr("生活照") &= iif(dr.IsNull("生活照"), "", vbcrlf) & Format(Date.Today, "yyyyMM") & "\" & NewName
                dr("资料完整度") = "初步完整"
                dr("照片审核") = "尚待审核"
                dr("注册填写到") = "images"  '填写新会员,注册资料填写到什么程度
            Next
        End If
    Next
    dr.save()              '保存
    e.WriteString("OK") '生成网页
Else
    e.WriteString("错误提示")
End If

js:
function validit_images(){
  var v1 = document.getElementById("up1_thumbnails").getElementsByTagName("li").length;
  var v2 = document.getElementById("up4_thumbnails").getElementsByTagName("li").length;
  alert(v1 + " " + v2);
 if(v1 < 1){
  showTopTips("toptip1","请选择1张展示照上传!",2000);
  return false;
  }
 if(v1 > 1){
  showTopTips("toptip1","展示照只可以上传1张!",2000);
  return false;
  }
 if(v2 < 4){
  showTopTips("toptip1","请选择4张以上生活照上传!",2000);
  return false;
  }
 if(v2 > 10){
  showTopTips("toptip1","生活照最多可以上传10张!",2000);
  return false;
  }
  show("tst1",2000);
  var result = submitAjaxForm('form1','afterSubmit');
}
function afterSubmit(result){
  hide("tst1");
 if (result=='OK') {
  show("tst2");
  location="success.htm";
  }
 else{
    show("tst3",2000);
  }
}
[此贴子已经被作者于2017/5/30 22:52:00编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/31 11:30:00 [显示全部帖子]

Dim file As String = "e:\web\zsz\d\201705\2017051412341529260.jpg"
Dim img As image = getImage(file)
Dim bmp As bitmap
If img.width > 800 Then
    If 800 * (img.height / img.width) > 600 Then
        bmp = new bitmap(img, 800*(600/(800*(img.height/img.width))), 600)
    Else
        bmp = new bitmap(img, 800, 800 * (img.height / img.width))
    End If
End If
bmp.save("e:\web\zsz\x\201705\2017051412341529260.jpg")
bmp.Dispose

在命令窗口执行代码,就是换个路径保存,提示:

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

[此贴子已经被作者于2017/5/31 11:30:49编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/31 20:12:00 [显示全部帖子]

''----以下代码写在计划任务内,隔2分钟执行,能正确处理------------------------------------------------------------------
'Dim file As String = "e:\web\zsz\d\201705\2017051412341529260.jpg"
'Dim img As image = getImage(file)
'Dim bmp As bitmap
'bmp = new bitmap(img, 100, 100 * (img.height / img.width))
'bmp.save("e:\web\zsz\x\201705\2017051412341529260.jpg")
'bmp.Dispose
'----处理展示照(参照上面代码,改写成下述代码,却没有执行)-----------------------------------------
Dim file() As String '命名缩略图数组
Dim img() As image '命名缩略图文件数组
Dim bmp() As bitmap '命名缩略图数组
Dim zhaop() As String '命名照片名称数组
Dim cis As Integer

Dim drs As List(of DataRow) = DataTables("会员资料").SQLSelect("[展示照缩略图] = '' And [展示照] <> ''","","[会员编号] DESC")
If drs.count > 0 Then
    cis = drs.count - 1
End If
If drs.count > 0 Then '找出异性报名的手机号
    For i As Integer = 0 To cis
        zhaop(i) = drs(i)("展示照") '将大图名称赋值给zhaop(i)
        file(i) = "e:\web\zsz\d\" & UrlEncode(zhaop(i)) '将zhaop(i)合成为取大图的地址
        img(i) = getImage(file(i)) '取大图,用于后续处理
        bmp(i) = new bitmap(img(i), 100, 100 * (img(i).height / img(i).width))
        bmp(i).save("e:\web\zsz\x\" & UrlEncode(zhaop(i)))
        bmp(i).Dispose
        drs(i)("展示照缩略图") = drs(i)("展示照")
        drs(i).save
    Next
End If
[此贴子已经被作者于2017/5/31 20:47:27编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/31 23:04:00 [显示全部帖子]

Dim drs As List(of DataRow) = DataTables("会员资料").SQLSelect("[展示照缩略图] is null And [展示照] is not null","","[会员编号] DESC")
msgbox("数量1:" & drs.count)
For Each dr As DataRow In drs
    Dim file = "e:\web\zsz\d\" & UrlEncode(dr("展示照"))
    msgbox("展示照:" & dr("展示照")) ’这里正常,引用的图片存在
    Dim img As image = getImage(file) '取大图,用于后续处理
    msgbox(4) ’显示4,弹出下面的提示,没有弹出5
    Dim bmp = new bitmap(img, 100, 100 * (img.height / img.width))
    msgbox(5)
    bmp.save("e:\web\zsz\x\" & UrlEncode(dr("展示照")))
    bmp.Dispose
    dr("展示照缩略图") = dr("展示照")
    dr.save
Next

错误提示:
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.5.22.1
错误所在事件:计划图片缩小2分钟
详细错误信息:
未将对象引用设置到对象的实例。

[此贴子已经被作者于2017/5/31 23:10:49编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/31 23:11:00 [显示全部帖子]

前面路径不会有问题,主要在图片列内容这里:

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

201705\2017051412460159083.jpg

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/5/31 23:28:00 [显示全部帖子]

Dim drs As List(of DataRow) = DataTables("会员资料").SQLSelect("[展示照缩略图] is null And [展示照] is not null","","[会员编号] DESC")
msgbox("数量1:" & drs.count)
For Each dr As DataRow In drs
    Dim file = "e:\web\zsz\d\" & dr("展示照") ’这里去掉UrlEncode就好了
msgbox("e:\web\zsz\d\" & dr("展示照")) ’执行这里提示下图
    Dim img As image = getImage(file) '取大图,用于后续处理
msgbox(4)
msgbox("高度:" & img.height & "宽度:" & img.width) 
    Dim bmp As bitmap = new bitmap(img, 100, 100 * (img.height / img.width))
msgbox(5)
    bmp.save("e:\web\zsz\x\" & dr("展示照"))
    bmp.Dispose
    dr("展示照缩略图") = dr("展示照")
    dr.save
Next


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


[此贴子已经被作者于2017/6/1 8:36:18编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1533 积分:10818 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/6/1 11:02:00 [显示全部帖子]

分享计划任务处理图片缩小:将该有的文件夹添加到相应的文件夹内后,都正常了,不需要UrlEncode

'----处理展示照单元格内1行----------------------------------------------------------------------------
Dim drs As List(of DataRow) = DataTables("会员资料").SQLSelect("[展示照缩略图] is null And [展示照] is not null","","[会员编号] DESC")
msgbox("数量1:" & drs.count)
For Each dr As DataRow In drs
    Dim file = "e:\web\zsz\d\" & dr("展示照")
    Dim img As image = getImage(file) '取大图,用于后续处理
    Dim bmp As bitmap = new bitmap(img, 100, 100 * (img.height / img.width))
    bmp.save("e:\web\zsz\x\" & dr("展示照"))
    bmp.Dispose
    dr("展示照缩略图") = dr("展示照")
    dr.save
Next

'----处理生活照(单元格内多行)---------------------------------------------------------------------------------------
drs = DataTables("会员资料").SQLSelect("[生活照缩略图] is null And [生活照] is not null","","[会员编号] DESC")
msgbox("数量2:" & drs.count)
For Each dr As DataRow In drs
  For Each shz As String In dr.Lines("生活照")
    Dim file = "e:\web\shz\d\" & shz
    Dim img As image = getImage(file) '取大图,用于后续处理
    Dim bmp = new bitmap(img, 100, 100 * (img.height / img.width))
    bmp.save("e:\web\shz\x\" & shz)
    bmp.Dispose
    dr("生活照缩略图") &= iif(dr.IsNull("生活照缩略图"), "", vbcrlf) & shz
    dr.save
  Next
Next

 回到顶部
总数 28 上一页 1 2 3