|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
【转载】
终于在折腾了三个小时候解决了Discuz!X2无法上传头像或者修改头像以及保存头像失败这个问题!赶在神棍节前的20多分钟把刚才解决问题的过程步骤整理下写出来,希望能帮助因为头像或者图片上传而烦恼的朋友们!
首先说一下我遇到的问题和背景信息:现在使用的是Linux主机Apache服务器。网站是Discuz!X2的程序最新版本UTF-8,网站开始是在本地调试好,然后搬家到服务器上的,上传图片等其他设置一切正常,唯独上传头像存在很大的问题,该显示“选择图片”“拍摄照片”的那个flash模块一片空白,没有反应!这就连图片都没有办法上传。要搜索也感觉无处下手,Discuz官方的提问的多,但是回答的少,几乎全部没有满意的答案,不过从别人的问题中能总结一些下手点!能够帮助我们来一步一步的去解决这么问题。
一:检查Ucenter配置信息和config_ucenter.php文件信息的一致性
虽然不少人提问没有得到解决,但是一些比较认真和仔细的回答中都提到了让检查这两处配置信息是否一致,上到Ucenter去检查通信是不是正常,要是正常,然后检查这个应用的具体配置信息是不是和config文件夹下面的config_ucenter.php中的信息是不是一致!不一致就以Ucenter中的为准调整一致。
我自己的问题也就出现在这里,因为用的是虚拟主机,所以我删除了那个127.0.0.1的默认IP才保证了通信正常,但是测试中发现config_ucenter.php这里面的127.0.0.1的IP并没删除!于是删除,清理缓存后有了上传图片的flash框了。第一步问题解决了,就是一致性的检查!
二:can not write to the data/tmp folder这个问题是权限问题
紧接着上传图片提示的是can not write to the data/tmp folder这么一个错误。那就是写入权限问题,于是找到Ucenter目录下的data文件夹下的tmp目录赋予777属性,好了可以上传了,但是就在这时候又出现了另一个问题!可以上传但是不能保存!这里插入一段话来解说下Discuz!X2上传头像的原理。
上传头像第一个步骤中,提示已经上传 100%,是指flash已经将图片 100% 上传到服务器上,然后交给 UCenter 处理,这个时候图片还在服务器的临时目录里。UCenter 将 flash 上传来的图片存放到 ./data/tmp 下,以 upload+uid+图片后缀名 的方式命名图片,然后将该图片的网址返回给 flash,flash 根据网址显示预览图。在排查“选择完图片,但是裁剪界面不能出现图片”问题时,应该考虑一下 UCenter 的 ./data/tmp 目录是否存在以及这个目录和文件的权限。
三:“头像保存过程中发生网络错误,请重试”还是权限问题
上面的原理你要是看懂了就明白问题在哪里了!继续在Ucenter目录下找avatar这个文件夹,这个是头像所在的文件夹。给这个文件夹以及以内的所有文件夹777属性,就是设置属性时候选择递归。让里面的所有文件夹都是777属性,这样头像就可以保存进去了。到此问题就就解决了!
最后总结下,因为每个人使用的服务器不同,并且遇到的情况也可能有差异,所以上面的方法不尽管用!但是思想是一样的,那就是通信正常,配置文件保持一致,文件夹权限问题。这三点,如果是独立服务器会需要调整更多。这个资源貌似不少,大家可以去搜索。目前西安地铁生活网的这个问题已经解决,如果有遇到其他情况需要帮助,请在下面留言。 |
|