用友下载文件显示0字节,八成是这几个原因

用友下载 ·
用友下载文件显示0字节,八成是这几个原因

下载0字节,第一个先看下载工具

我最早遇到用友下载文件0字节,是在帮客户装T3的时候,记得那个文件叫“setup.exe”,点了下载按钮,进度条走完,打开文件夹一看,0字节。当时心里真是一万只羊驼跑过。后来自己排查多了,发现八成出在下载工具身上。很多浏览器默认开了“安全扫描”或者“下载保护”,比如360浏览器的“下载保镖”,它会拦截掉exe文件,给你个空壳子。或者你用迅雷、IDM这类第三方工具,一旦资源服务器那边返回的响应有点奇怪,这些下载器就直接写个空文件。

我自己习惯的做法是:点本页下载按钮后,直接走浏览器自带下载,不走第三方工具。具体点说,Chrome和Edge都挺稳,但有个细节:下载前把浏览器的“安全浏览”暂时关了。以Chrome为例,点右上角三个点,进设置,搜“安全”,把“安全浏览”改成“不保护”,等文件下载完了再改回来。这一步能避开很多莫名其妙的重定向和拦截。如果你是非用迅雷不可,那试试在迅雷里右键任务,选“强制使用原始地址下载”,别让它走P2P加速。

要是你发现下载下来是0字节,别急着重试。先清一下浏览器的缓存,特别是一些临时文件目录。比如Win10系统,你可以在“运行”里打%temp%,里面一堆垃圾文件,全删了,再重试。有的时候服务器那边的反盗链策略作祟,你之前访问过快,它把你的请求标记成机器人,直接返回空内容。清缓存、换个浏览器、或者直接用隐身模式去下,基本能破。

免费使用无需付费解锁官方正版安装包带数字签名高速下载多线程·稳定不限速

网络环境或防火墙作祟

有一次我在一个企业内网装用友U8,文件下载下来老是0字节,exe文件就直接写着“0 KB”。搞了半小时,发现是公司的网监系统把下载请求里的某个特征字符串给过滤了。因为用友的下载包名里经常带“UFIDA”或者“YONYOU”这样的词,一些防火墙或上网行为管理设备会把它当成未知威胁直接阻断。但表面上看,下载连接还在,浏览器收到的是个空body。

这就是个坑。要是你在公司或学校网络里,最好先连手机热点试一下。如果热点下载正常,那就是公司网络的问题。这时候你得找网管,让他把那个下载域名加入白名单。具体域名是多少?不同版本不一样,但是一般就是download.yonyou.com之类的。你可以自己在浏览器的开发者工具里看“网络”标签,找到被重定向或返回204的那个请求,然后把它对应的域名告诉网管。

个人经验:下载前先ping一下那个下载服务器,看看延迟。如果延迟高或者丢包,那八成也会导致文件不全。我还碰到过一种情况,就是路由器里开了“家长控制”或者“内容过滤”,里面默认会屏蔽掉可执行文件。有些家用路由器的管理后台就能设,你看看是不是勾了什么“禁止下载exe”的选项。关了它,重启下路由器,再去下,就好了。

服务器或资源本身就有问题

说句实话,用友的下载服务器有时候真的很拉胯。尤其是那些老版本的补丁包,比如T6、T3的某个SP补丁,源文件本身就可能损坏了。我遇到过不止一次,点了本页下载按钮,放在服务器上那个文件就是个空壳。这个时候你下载一百遍也没用。

怎么判断?很简单,你换个时间段试。比如晚上九十点再下,或者第二天早上。如果还是0字节,那就不是你的问题,是服务器那边文件没了或者挂掉了。这种情况下,可以试试去找一下用友的官方客服,让他们给你个百度网盘或者QQ中转链接。别问我为什么知道,我曾经为了一个200兆的补丁包跟客服磨了半天,最后他以邮件附件形式发给我,解压出来能用。

还有一种情况,就是那个下载页面其实是“防盗链”的。它只在特定页面、特定referer下才返回真实内容。如果你直接复制了下载链接到新窗口打开,或者用工具去抓,拿到的就是空的。这时候你必须在原页面上,用鼠标右键点那个下载按钮,选“另存为”,别走任何第三方跳转。多试几次,有时候点慢了也不行,它有session超时限制。

浏览器缓存或插件拦截

浏览器插件是真能坏事。我装的一个叫“广告终结者”的插件,有一次莫名其妙把我的下载文件全部替换成了0字节的空白文件。后来发现它有一个“清除下载记录”的功能,默认开启,每次下载完成后会清掉缓存,结果文件本身也被清空了。更坑的是,它还不会报错,你看着下载进度条走完,文件夹里就是0字节。

类似的插件还有“百度拦截助手”、“安全卫士类扩展”等。如果你同时装了多个安全类插件,它们之间互相干扰,一个说“这个文件可疑”,另一个说“我来处理”,最后谁都没干。解决办法是:下载前,先把所有非必要的插件都禁用了。在Chrome地址栏打chrome://extensions,一个个关掉。尤其是那些带“下载”、“安全”、“防护”字眼的,全部禁用。下完了再打开。

还有一点,浏览器自带的“下载内容”面板有时候也会出问题。比如Edge历史版本就有一个bug:当下载队列里有大量任务时,新任务会显示“已完成”,但实际文件大小为0。这时候怎么办?把下载面板里的历史记录全部清空,重启浏览器,然后只下一个文件,别下多个。这个坑我碰到过一次,后来再也没犯过。

磁盘空间或权限问题

别笑,我见过有人硬盘只剩几十兆,然后下载的文件写不进去,系统直接给个0字节占个位。还有权限问题:如果你用的是Windows自带的“Administrator”账号,或者你电脑有多个账户,目标文件夹是系统盘(比如C盘的Program Files),而你的当前用户没有写入权限,下载器会尝试写个空占位文件,然后失败。结果就是0字节。

解决办法很直接。右键你下载的目标文件夹,点属性,安全,编辑,给当前用户加上“完全控制”权限。或者干脆换个文件夹下,比如在桌面上新建一个文件夹,把下载位置设置到那里。如果你的C盘空间少于5个G,赶紧清理一下。运行里打cleanmgr,清理系统文件,把临时文件、回收站、Windows更新缓存全删了,腾出空间来。这个动作做完,大部分因磁盘导致的0字节问题就没了。

还有更隐蔽的:硬盘有坏道。如果你的电脑是老式机械硬盘,坏道会导致写入失败。你可以用chkdsk命令查一下。管理员运行cmd,输chkdsk C: /f,让它扫描修复。不过这个处理起来比较慢,而且不一定能根治。我建议备份好重要数据后换个固态。

文件本身是压缩包但扩展名不对

有几次,我下载下来的用友安装包明明是exe后缀,打开却显示0字节。仔细一看,其实是服务器那边给的路径错了:下载页面那个链接,指向的并不是真正的安装包,而是一个压缩包。但由于HTTP响应头里没有正确设置Content-Disposition,浏览器识别成了下载的普通文件,但内容却是空壳子。这时候你要做的就是:点本页下载按钮后,等下载完成,别直接双击,先右键那个文件,选“查看属性”,看看大小和类型。如果类型显示“压缩文件夹”,那就改后缀名为.rar或.zip,然后解压出来。

还有更奇葩的:服务器给你返回了一个html页面作为下载内容,但因为是二进制写入导致的,所以显示为0字节。遇到这种情况,打开浏览器开发者工具,看网络请求返回的内容类型。如果是“text/html”而不是“application/octet-stream”,那就说明服务器那边根本没给你文件,而是一个错误页。白嫖了。你需要联系管理员修复链接。

我自己遇到最离谱的一次,是一个用友的补丁包,名字叫“YYT6Patch.exe”,下载下来0字节,我反复试了5次,最后索性用WinHex打开那个0字节文件,发现里面有一行文本:“File not found”。这就是服务器故意返回的错误信息,但浏览器没正确处理,直接当文件给缓存了。处理方法就是:清空浏览器缓存,或者换个浏览器下,比如用Firefox。

简单粗暴的终极方案:换机器、换网络

做了上面所有操作还是0字节,那我建议你别在自己电脑上死磕了。找个朋友的电脑,连他家的网,用他浏览器去下。或者直接去网吧,找一台机器,拷贝到U盘里。这个方法听起来很土,但真的管用。原因可能是你的网络运营商(如电信、联通、移动)和企业下载服务器之间的路由有问题,或者你的本地ISP对某些端口做了特殊限制。

有一次我帮客户远程装用友,他那边的文件一直0字节,我让我自己电脑在办公室帮他下,一秒钟就下好了,打包成rar发给他,直接能用。说到底,用友的下载服务器对不同IP段可能有不同限制,或者你所在地区有CDN节点故障,这都不是你能控制的。换个环境,往往最省时间。

最后说个笨办法:如果你实在没办法,可以用手机浏览器点本页下载按钮,然后通过数据线或者微信文件传输助手传到电脑上。手机端的网络环境和电脑不一样,往往能绕过一些限制。这个方法我第一次试是在动车上,居然成功下到了U8的补丁包。从那以后,这一招就成了我工具箱里的压箱底技能。