Foxtable(狐表)用户栏目专家坐堂 → [求助]移动开发 审批前怎么打开上传的附件?


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

主题:[求助]移动开发 审批前怎么打开上传的附件?

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


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

1、你尝试关闭重新打开项目;

 

2、尽量不要用7楼代码,不然文件名无法自定义。用你原来的代码图片也有问题?


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


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

测试了一下大文件图片,同样正常显示。你是不是有冲突代码?代码执行完毕以后,请马上return,后面不要再执行其余代码。

 


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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2017/9/13 12:42:00 [只看该作者]

蓝版:用你的代码,图片文件越小,显示越多,与浏览器无关(手机、电脑都测了)。
附相关全部代码:
Dim fl As String = "e:\web\" & e.path '"e:\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",".png",".bmp",".wmf",".js",".css",".html",".htm",".doc",".docx",".xls",",xlsx"
            e.WriteFile(fl) '则发送此文件
            Return '这里必须返回
    End Select
End If
'用户内外网判断:Host: 返回IP地址,据此可以判断用户是外网还是内网用户
'If e.host="10.22.1.40" Then '内网
'ElseIf e.host="123.81.249.43" Then '外网
'End If
'登录:当用户第一次访问时,自动跳转到登录页面登录.htm,要求输入用户名和密码.如果身份验证失败,重新进入登录页面,并提示错误
'当验证通过后,自动跳转到首页.htm,并可访问任何其他页面.退出登录时,清除当前的登录状态,重新进入登录页面.
'身份验证
Dim wb As New weui
Dim Verified As Boolean '用于标记用户是否通过了身份验证
Dim UserName As String = e.Cookies("username") '从本机临时存储的cookie中获取用户名.Cookies是字典,包括所有的Cookie
Dim Password As String = e.Cookies("password") '从cookie中获取用户密码
Dim s1,s2,rw,rw0,fqr,jsr,jsr0,nms(),nm,bmmc As String
Dim fqrq As Date
Dim i,count As Integer
Dim dt As DataTable
Dim dc As DataCol
Dim dr,dr1 As DataRow
Select Case e.path
    Case "test.htm"
        wb.AddForm("","form1","test.htm")
        dr = DataTables("合同评审").SQLFind("[_Identify]=296")
        With wb.AddInputGroup("form1","ipg1","附件")
            With .AddTextArea("附件",5)
                .Value = dr("附件")
            End With
        End With
        Dim file As String = dr("附件") '含回车的多行文件名
        Dim Lst() As String = file.Split(vbcrlf) '文件名数组
        If Lst.Length >0 Then '如果有附件
            With wb.AddListGroup("form1", "lsg", "查看附件")
                If Lst.Length=1 Then '只有一个附件
                    .Add("查看附件","查看附件", "", "download.htm?file=" & UrlEncode(lst(0))) '(含路径)附件的url编码
                Else
                    For i = 0 To Lst.Length-1
                        Dim zj As Integer = lst(i).IndexOf("/")
                        lst(i)=lst(i).SubString(zj)
                        .Add("查看附件" & i+1,"查看附件" & i+1, "", "download.htm?file=" & UrlEncode(lst(i)))
                    Next
                End If
            End With
        End If
        With wb.AddButtonGroup("form1","btg1",True)
            .Add("btn1", "审批", "submit")
        End With
    Case "download.htm" '查看附件
        Dim file As String = "e:\项目管理系统" & e.Values("file").replace("/","\")
        e.WriteFile(file)
        'Dim file As String = e.Values("file")
        'Dim fs As System.IO.FileStream = Nothing
        'fs = System.IO.File.Open("e:\项目管理系统" & file, System.IO.FileMode.Open)
        'Dim btFile As Byte() = New Byte(fs.Length - 1) {}
        'fs.Read(btFile, 0, Convert.ToInt32(fs.Length))
        'fs.Close()
        'e.Response.Headers("Content-Disposition") = "attachment;filename=" & UrlEncode(FileSys.GetName(file))
        'e.Response.C
        'Dim output = e.response.OutputStream
        'output.Write(btFile,0,btFile.Length)
        'output.Close()
End Select
e.WriteString(wb.Build)

甜版:用你的代码,下载doc文件出现10楼的错误,下载图片文件出现以下错误:

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


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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2017/9/13 12:45:00 [只看该作者]

难道我的windows有问题了?
因为还没有发到服务器,只是本机测试。

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


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

最后一句代码删除
 
e.WriteString(wb.Build)

 


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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2017/9/13 13:36:00 [只看该作者]

谢谢甜版、蓝版。
现在用蓝版代码、在Case "download.htm"的最后加return,OK了
加了return之后,用甜版代码,还是出现10楼的错误,13楼的错误没有了。以后有空先重装系统试试。

甜版:我在Case "download.htm"的最后,加了return,就不用删除最后一句了,因为还有其他case要用到(这是一个已经在用的项目,现在只是想把“合同评审”也加进来)。


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


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


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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2017/9/15 8:57:00 [只看该作者]

甜版:
    电脑IP:10.22.5.123,电脑浏览器输入10.22.5.123:8888/test.htm,正常;
    但手机浏览器输入10.22.5.123:8888/test.htm,就会出现10楼的错误信息。
    请问你用手机测试也正常吗?

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


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

直接写代码测试没问题,电脑手机测试都没问题。

 

Select Case e.path
    Case "test.htm"
       
    Case "download.htm"
        Dim file As String = "test.txt"
        Dim fs As System.IO.FileStream = Nothing
        fs = System.IO.File.Open("d:\" & file, System.IO.FileMode.Open)
        Dim btFile As Byte() = New Byte(fs.Length - 1) {}
        fs.Read(btFile, 0, Convert.ToInt32(fs.Length))
        fs.Close()
       
        e.Response.Headers("Content-Disposition") = "attachment;filename=" & file
        '输出文件格式
        e.Response.ContentType = "application/octet-stream"
        
        Dim output = e.response.OutputStream
        output.Write(btFile,0,btFile.Length)
        output.Close()
End Select

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

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2017/9/15 14:37:00 [只看该作者]

甜版:你是否在BeforeShowErrorMessage事件设置了e.Cancel=True?我这样设置后就正常了
我把win7换成win10、只装foxtable、发布后拷到服务器、浏览器由绿茶换成QQ、版本换成8月19日、设置了共享、改成英文文件名、直接放在根目录,各种组合都试了,都会弹出10楼错误,但不影响运行。



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