记一次资源管理系统的Debug历程

  • 本次主要记录使用ThinkPHP框架集成WebUploader插件过程总所遇到的BUG
    • 开始看TP官方论坛上已有的白俊遥的集成教程学习过程遇到的BUG:
      • 1、按照教程添加自定义标签,并在模板页面使用自定义标签。
        • webuploader标签不解析,而其他的插件js、css标签都能正常解析。
          • 灵异bug,不设置标签word参数,或者设置为空即可。
        • 标签解析后,发现插件无论如何都不加载选择文件框。
          • 经仔细排查自定义标签,发现是插件在初始化时需要加载swf文件,原blog中作者使用了自己的项目的路径。改动后发现能够加载插件了。
        • 配置好插件参数后,还是无法加载出文件选择框。浏览器控制台输出插件主文件有浏览器不支持的属性,(connXXXruntime错误),
          • 虽然我是在官网中给出的github中下载的,但是因为刻板印象,认为可能是IE属性支持问题。使用edge浏览器依报该错误。死活加载不了。简直令人抓狂,心理狂躁不安,准备使用chrome调试,但因为办公电脑配置太烂就暂时放弃了这条线。
          • 暂时排除属性支持猜想后,怀疑可能为插件问题,开发伊始就看的插件readme文档,按文档使用的nolog版插件。所以尝试使用demo中的插件,经测试无效,仍报该错误。
          • 怀疑可能为jQuery版本问题,所以将标签类中的jQuery替换成demo中的jQuery,发现还是报错。
          • 最后怀疑可能是js的冲突问题,尝试删除各种js,只留插件js、css及一些页面必须css文件。问题解决。
            • 开发中一定要注意jQuery版本,可能会导致各种莫名其妙的问题

  • 插件成功加载后,接收的数据为空.
    - 这个 bug 把我气出吐血,不管怎么测试上传的数据总为空.服务端插件端检查了数次.最后发现原因是用于存储上传信息的控件名与插件内部的控件重名.因为插件是每次点击选择文件按钮后自动生成一个name为 file 的 input控件用于兼容各浏览器端上传操作.上传完毕后该控件会自动重置.导致表单提交时一直使用该控件的值.而该控件在上传完毕后值被重置导致服务端获取到的值为空值.
    - ## 一定不要用使用频度非常高的单词做变量 变量名 有一天你一定会后悔的

你可能感兴趣的:(记一次资源管理系统的Debug历程)