Foxtable(狐表)用户栏目专家坐堂 → 自定义升级问题


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

主题:自定义升级问题

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
自定义升级问题  发帖心情 Post By:2018/3/10 15:34:00 [只看该作者]

老师,自己做的自定义升级,出现了这样的错误:
error extracting entry from zip file
error inflating:invalid stored block lengths

另外,要升级第二次才会把下载下来升级包解压出来
解压后也并没有删除升级包


Dim IP2 As String = "106.XXX" '外网
Dim IPa As String = IP2 '采用值
Dim ftpAccount As String = "ft" '设置ftp登录用户名
Dim ftppassword As String = "a" '设置ftp登录密码
Dim Exit0 As String = "0" '是否正常退出标识.0-非正常退出,指点屏幕右上角的X退出
Dim pname As String = "智慧工场"
Dim dpath As String = ProjectPath
Dim upath As String = "\XXX\sjb\" '服务器上的项目文件路径和升级路径
Dim datafile As String = pname & ".zip" '包含最新升级数据的文件名

Dim ftp1 As new ftpclient
ftp1.TimeOut = 20000 '用于设置尝试操作的毫秒数
ftp1.host = ipa
ftp1.Account = ftpAccount '设置ftp登录用户名
ftp1.password = ftppassword '设置ftp登录密码
ftp1.UTF8 = False

Dim s3 As String = upath & datafile '服务器上升级文件中包含升级内容的文件
Dim s4 As String = dpath & "\" & datafile '准备保存在客户端的包含升级内容的文件
If FileSys.DirectoryExists(dpath) = False Then
    FileSys.CreateDirectory(dpath)
End If
ftp1.download(s3,s4,True) '非静默下载并另存
Dim zip As New zipFile
zip.Open(s4) '打开升级文件
zip.Extractall(dpath) '全部解压到客户端运行文件夹,要升级两次
zip.Close() '关闭升级文件
If FileSys.FileExists(s4) Then '如果指定的文件存在
    FileSys.deleteFile(s4,2,2) '删除升级文件
End If  解压后也并没有删除升级包
Exit0 = "1"
Syscmd.Project.Open(ProjectFile) '重新打开项目

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/3/10 15:41:00 [只看该作者]

升级包没问题,手动解压到目录是OK的。

这样测试没问题:
Dim pname As String = "智慧工场"
Dim dpath As String = "D:\智慧工场\project"
Dim datafile As String = pname & ".zip" '包含最新升级数据的文件名

Dim s4 As String = dpath & "\" & datafile '准备保存在客户端的包含升级内容的文件
If FileSys.DirectoryExists(dpath) = False Then
    FileSys.CreateDirectory(dpath)
End If
Dim zip As New zipFile
zip.Open(s4) '打开升级文件
zip.Extractall(dpath) '全部解压到客户端运行文件夹
zip.Close() '关闭升级文件
If FileSys.FileExists(s4) Then '如果指定的文件存在
    FileSys.deleteFile(s4,2,2) '删除升级文件
End If


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


加好友 发短信
等级:超级版主 帖子:112364 积分:572076 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/10 15:41:00 [只看该作者]

试试


ftp1.download(s3,s4,True) '非静默下载并另存
Application.Doevents
System.Threading.Thread.Sleep(2000)
Dim zip As New zipFile
zip.Open(s4) '打开升级文件
zip.Extractall(dpath) '全部解压到客户端运行文件夹,要升级两次
zip.Close() '关闭升级文件
Application.Doevents
System.Threading.Thread.Sleep(2000)
If FileSys.FileExists(s4) Then '如果指定的文件存在
    FileSys.deleteFile(s4,2,2) '删除升级文件
End If  解压后也并没有删除升级包
Exit0 = "1"
Syscmd.Project.Open(ProjectFile) '重新打开项目

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/3/10 16:16:00 [只看该作者]

蓝老师,这样就可以了。
这是什么原因呢?要缓冲一下哈?

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


加好友 发短信
等级:超级版主 帖子:112364 积分:572076 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/10 16:29:00 [只看该作者]

等一下前面做完事,其次等一下杀毒软件检测完

 回到顶部