Foxtable(狐表)用户栏目专家坐堂 → FTP用于升级,如何做呀?


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

主题:FTP用于升级,如何做呀?

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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
FTP用于升级,如何做呀?  发帖心情 Post By:2014/4/17 13:06:00 [只看该作者]

如题。

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


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

 是自带的升级吗?

 

 直接写ftp地址就行了,类似这样 ftp://zhanshang:138238@egridsoft.com/update.zip

 

 如果自己做,就必须把文件下载下来,然后覆盖就行了。


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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2014/4/17 14:20:00 [只看该作者]

这个ftp升级可以跨版本升级了吗,是不是只要类似project那样把publish下的所有文件打包覆盖就行。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/17 14:21:00 [只看该作者]

不支持夸版本升级,夸版本升级可以参考论坛用户自制的一些例子.

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


加好友 发短信
等级:幼狐 帖子:140 积分:1202 威望:0 精华:0 注册:2013/7/28 12:10:00
  发帖心情 Post By:2014/4/17 18:59:00 [只看该作者]


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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/4/17 20:36:00 [只看该作者]

以下是引用有点甜在2014-4-17 14:04:00的发言:

 是自带的升级吗?

 

 直接写ftp地址就行了,类似这样 ftp://zhanshang:138238@egridsoft.com/update.zip

 

 如果自己做,就必须把文件下载下来,然后覆盖就行了。

不是帮助中的升级原理。


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


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

以下是引用lihe60在2014-4-17 20:36:00的发言:

不是帮助中的升级原理。

 

什么意思?想问的什么?


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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/4/17 20:46:00 [只看该作者]

帮助中的升级,是自动覆盖,自动打开的。

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


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

以下是引用lihe60在2014-4-17 20:46:00的发言:
帮助中的升级,是自动覆盖,自动打开的。

 

是问这个怎么实现?用代码下载完毕,覆盖,再重启项目即可。


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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/4/17 20:56:00 [只看该作者]

远程自动升级的实现

本节的内容可以参考CaseStudy目录下的文件:远程更新.Table

我们知道,B/S结构的软件易于部署,而C/S结构的软件则能提供更好的交互性。
虽然鱼和熊掌不可兼得,不过Foxtable却较好地融合了二者的优势。
作为C/S结构的软件,FoxTable有着良好的交互性,能充分利用客户端的计算能力,提供更好的性能和功能。
同时FoxTable内置远程升级功能,当项目有新的版本时,你只需简单的一行代码,即可同步更新所有客户端的项目。

需要注意的是: 试用版不具备本功能,只有商业版和开发版才能实现远程自动升级

设计步骤:

1、项目属性中有两项用于设置远程升级

  • 在线升级路径
    指定远程升级包的下载路径。
     
  • 项目发布日期
    指定项目的发布日期,此日期将用于和远程升级包的发布日期进行比较,以判断当前项目是否需要升级

2、制作升级

首先需要注意的是,升级包必须是zip格式的压缩文件。
当开发者准备发布项目的新版本时,首先应该将项目属性中的项目发布日期设置为当天日期,然后将需要更新的文件压缩成一个zip文件作为升级包使用,升级包的文件名为:update.zip,
升级包中的各文件必须保持原有的相对路径,项目文件位于压缩文件的根目录,而Images、Attachments则作为子目录,不过Catch目录没有必要包括在升级包中,因为它会自动生成。
如果需要的话,可以只将更改过的文件包括在升级包中。
然后新建一个名为update.txt的文本文件,该文本文件的内容为压缩包的发布日期,此日期必须和项目属性中设置的项目发布日期相同,通常就是当天日期。
最后将update.zip和update.txt文件上传到项目属性中指定的在线升级路径中。
即使你没有发布新的项目,也应该在在线升级路径放置一个包含项目发布日期的update.txt文件,以免用户在线升级的时候出现错误提示。

如果你对于制作升级包还有疑惑,可以参考我们为示例文件“远程更新.Table”制作的远程升级包,地址为:

http://www.foxtable.com/download/80211/update.zip
http://www.foxtable.com/download/80211/update.txt

需要注意的是,经常有用户制作升级包的时候,将整个项目文件夹压缩进去,这样是不对的,会导致升级失败。
我们需要将项目文件夹下的文件及其子目录压缩到升级包中,而不是直接将整个项目文件夹压缩到升级包中,这一点要特别注意:

3、在线升级

你可以在你的项目中加上一个在线升级的菜单命令或者按钮,代码很简单:

Syscmd.Project.Update()

执行上面的代码,系统首先检索远程升级路径中的update.txt文件,获得升级包的发布日期,然后用这个日期和本地项目的发布日期进行比较,如果升级包的日期较新,则下载update.zip文件,并自动解压更新有关文件。

至此我们的在线升级功能已经完成,即使你是一个初次接触编程的人,应该也能即时掌握。

Update的语法:

Syscmd.Project.Update(Prom1, Prom2)

Prom1: 可选参数,逻辑型,没有发现新版本时,是否提示用户。
Prom2: 可选参数,逻辑型,发现新版本时,是否提示用户升级

例如希望自动升级能够完全"静默",发现新版本时不提示,自动开始升级,没有发现新版本时也不提示:

Syscmd.Project.Update(False,False)

如果我们在AfterOpenProject下面的代码:

Syscmd.Project.Update(False,False)
Forms
("窗口1").Open() '可能会出错

目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错。
我们可以用下面的代码避免错误:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    
Forms("窗口1").open()
End
If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。

4、基于局域网的在线升级

在线升级默认是基于互联网的,在升级之前,会自动检测是否连接互联网。
如果要基于局域网进行在线升级,除了将升级包路径设置为局域网路径外,还必须将属性“通过互联网升级”设置为False:

5、和远程升级相关的系统变量

  • PublishDate
    日期型变量,返回在项目属性中设置的项目发布日期。
     
  • UpdatePath
    字符型,用于设置或返回在线升级路径,有了这个变量,我们可以动态设置升级路径。
     
  • RemoteUpdate
    逻辑型,是否通过互联网升级

 回到顶部
总数 14 1 2 下一页