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


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

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

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


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

代码在15楼
1.刚才将内部函数valid_images内加入msgbox("000")、msgbox("111"),放在msgbox(drbianh)之前,发现都没有执行
2.msgbox(drbianh)去掉注释,没有执行
3.只是跳转到页面:http://127.0.0.1/validit_images.htm,见附图

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

[此贴子已经被作者于2017/3/22 9:28:36编辑过]

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


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

图片保存成功了

1.代码在15楼,内部函数valid_images保存图片时,希望重新命名图片名字,第一个图文件名:1000,以后每次+1,不知道这样可以吗?
2.帮助文档是直接在文件名后面+(2),每次命名都要查1遍

问:这2种谁有优势?



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


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

回24楼,如果用时间命名,假设同一毫秒或同一时间,有2个文件同时命名,会怎么样?会覆盖吗?
[此贴子已经被作者于2017/3/22 12:13:23编辑过]

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


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

为避免覆盖同名文件,采用官方移动文档方法:原名+(2)
此代码是可正确执行的代码,只是粉色部分是新添加的,麻烦看看,是否可行

Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        'msgbox(drbianh)
        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 NewName As String = fln
                        Dim idx As Integer = fln.LastIndexOf(".")
                        Dim cnt As Integer = 1
                        Do While FileSys.FileExists(ProjectPath & "Attachments\"  & NewName) '判断文件夹是否存在同名文件
                            NewName = fln.Insert(idx,"(" & cnt & ")") '如果存在同名文件,在原文件名加上序号
                            cnt = cnt + 1 '递增序号
                        Loop
                        
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & fln)
                    Next
                    dr.Lines("展示照") = e.Files(key)
                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 NewName As String = fln1
                        Dim idx As Integer = fln1.LastIndexOf(".")
                        Dim cnt As Integer = 1
                        Do While FileSys.FileExists(ProjectPath & "Attachments\"  & NewName) '判断文件夹是否存在同名文件
                            NewName = fln1.Insert(idx,"(" & cnt & ")") '如果存在同名文件,在原文件名加上序号
                            cnt = cnt + 1 '递增序号
                        Loop
                        
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & fln1)
                    Next
                    dr.Lines("生活照") = e.Files(key1)
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
End Select

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


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

重命名不成功
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        'msgbox(drbianh)
        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 NewName As String = Format(Date.Now, "yyyyMMddHHmmssffffff")
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & NewName)
                    Next
                    dr.Lines("展示照") = e.Files(key)
                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 NewName As String = Format(Date.Now, "yyyyMMddHHmmssffffff")
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & NewName)
                    Next
                    dr.Lines("生活照") = e.Files(key1)
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
End Select

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


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

上传成功,但是名字还是没有改对,上图

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

如果改了后缀名,会不会有麻烦?代码:
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        'msgbox(drbianh)
        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)
                        msgbox(0)
                        Dim NewName As String = Format(Date.Now, "yyyyMMddHHmmssffffff")
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & NewName & ".jpg")
                    Next
                    dr.Lines("展示照") = e.Files(key)
                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)
                        msgbox(1)
                        Dim NewName As String = Format(Date.Now, "yyyyMMddHHmmssffffff")
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & NewName & ".jpg")
                    Next
                    dr.Lines("生活照") = e.Files(key1)
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
End Select


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


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

用楼上的方法,dr.Lines("展示照") = NewName,提示未声明变量NewName,不能赋值

所以改成这样定义NewName
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        Dim NewName As String 
        'msgbox(drbianh)
        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)
                        'msgbox(0)
                        Dim ext As String = fln.Split(".")(1)
                         NewName  = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & NewName)
                    Next
                    dr.Lines("展示照") = NewName
                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)
                        'msgbox(1)
                        Dim ext As String = fln.Split(".")(1)
                        NewName = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & NewName)
                    Next
                    dr.Lines("展示照") = NewName
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
End Select

但是还是提示错误,见附图

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

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


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

按楼上,保存1张照片重命名成功,保存4张的未成功,修改后代码如下:

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

Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Select Case e.Path
    Case "valid_images.htm"
        Dim wb As New weui
        Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
        Dim NewName As String
        'msgbox(drbianh)
        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)
                        'msgbox(0)
                        Dim ext As String = fln.Split(".")(1)
                        NewName = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext
                        e.SaveFile(key, fln, ProjectPath & "Attachments\" & NewName)
                        dr("展示照") = iif(dr.IsNull("展示照"), "", vbcrlf) & 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)
                        'msgbox(1)
                        Dim ext1 As String = fln1.Split(".")(1)
                        NewName  = Format(Date.Now, "yyyyMMddHHmmssffffff") & "." & ext1
                        e.SaveFile(key1, fln1, ProjectPath & "Attachments\" & NewName)
                        dr("生活照") = iif(dr.IsNull("生活照"), "", vbcrlf) & NewName
                    Next
                End If
            Next
            dr.save()              '保存
        End If
        wb.InsertHTML("<meta http-equiv='Refresh' c>") '那么直接跳转到登录页面
        e.WriteString(wb.Build) '生成网页
End Select
[此贴子已经被作者于2017/3/23 9:11:24编辑过]

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


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

拉高确实有了,但是
1.每列只有1张
2.展示照列,不是上传的那张
3.上传了5张,Attachments下面只有2张

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

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

[此贴子已经被作者于2017/3/23 9:35:44编辑过]

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


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

上传都成功了,只是生活照列只有最后一张的文件名,打开生活照列图片管理器,全屏,找不上下条

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