织梦图集织梦无法上传图片片时提示ERROR:UploadError!,这个是什么问题?

欢迎来访秀站网,DEDE织梦模板第一服务平台!
当前位置: >
织梦DEDECMS无法上传图片的解决办法
时间:&&来源:未知
&&作者:秀站网
把include/uploadsafe.inc.php里找到以下代码 $imtypes = array(image/pjpeg,image/jpeg,image/gif,image/png,image/xpng,image/wbmp,image/bmp); if(in_array(strtolower(trim(${$_key._type})),$imtypes)) { $image_dd = @getimagesize($$_key); if (!is_a
把include/uploadsafe.inc.php里找到以下代码&
$imtypes = array(&image/pjpeg&,&image/jpeg&,&image/gif&,&image/png&,&image/xpng&,&image/wbmp&,&image/bmp&);&
if(in_array(strtolower(trim(${$_key.'_type'})),$imtypes))&
$image_dd = @getimagesize($$_key);&
if (!is_array($image_dd))&
exit('Upload filetype not allow !');&
下载全新的DEDE都不能正常上传图片,百度一下,找到结果无非是这两种情况&
1、删掉以上代码 2、目录权限问题&
现在我告诉你,这两种方法纯司扯蛋!!!!&
这个问题,是官方编写程序不慎造成的,也就是说,官方版本的这个文件有一处错误!&
可惜,官方没有发现这个问题,一直到现在的5.7版本,仍然是这个错误。&
根本的解决办法:&
把 $imtypes = 改成 $imgtypes =&
就解释到这里,如果还有其他的问题和解决办法,请在下面留言!
本文地址:/dedecms_wt/115.html
责任编辑:
免费一次安装
终身BUG修复您当前的位置 >>
DeDeCMS图片集上传图片出错(FIELID:*)的解决办法
DeDeCMS图片集上传图片出错(FIELID:*)的解决办法
发布: 18:36 | 分类: 我的博客 | 评论:
| 来源:未知
一直以来dede5.6在使用中经常会爆出如下错误,官方论坛从未给出解决方案。今天在给客户做验收报告时,又突然爆出此错误。心理拔凉啊~知道这个是又臭又硬的硬骨头,好多人提出,却从未见到有解决的。直到刚才~终于看到一兄弟的正解,原来这是utf-8的bom问题,这也是一般人不曾想到的,我一直都在查究程序代码,改来改去又测试来测试去,程序始终没发现端倪,原来是bom这厮~终于有人揪出你来,解我心头大恨啊,哈哈哈~~~废话不说了,就把我测试正解的方案贴出来与大家分享:
首先看一下错误,无图无真相,上图:
找到提示出错的相关js文件:
/dede/handlers.js
发现有这么一段:
&function uploadSuccess(file, serverData) {
var progress = new FileProgress(file, this.customSettings.upload_target);
if (serverData.substring(0, 7) === &FILEID:&) {
addImage(&swfupload.php?dopost=thumbnail&id=& + serverData.substring(7), serverData.substring(7));
progress.setStatus(&获取缩略图...&);
progress.toggleCancel(false);
addImage(&img/error.gif&, 0);
progress.setStatus(&有错误!&);
progress.toggleCancel(false);
alert(serverData);
} catch (ex) {
this.debug(ex);
if (serverData.substring(0, 7) === &FILEID:&)
这句的判断为假导致如上图的问题。
查看serverData的值没有发现什么异常,但是判断始终为假
问题就出在serverData.substring(0, 7) 始终都不等于&FILEID:&
调整了截取边界也一样有错,于是乎,请来了HttpAnalyzer一看,哦,原来如此:
虽然这么看着没什么问题
但实际问题在这:
前面多了三个字节:ef bb bf
大致一找原来这是utf-8的bom问题,是修改文件时在文件头自动加入的这三个字节导致的连锁反应
但是那么多文件要找出是哪个文件的问题倒是有点头大&&
后来找到一篇文章《转两篇 移除PHP中BOM的方法》按照其中给出的清除BOM的代码解决了这个问题
代码如下:
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
$basedir=$_GET['dir'];
$basedir = '.';
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir.&/&.$file)) {
echo &filename: $basedir/$file &;
echo checkBOM(&$basedir/$file&).& &br&&;
$dirname = $basedir.&/&.$
checkdir($dirname);
closedir($dh);
function checkBOM ($filename) {
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return (&&font color=red&BOM found, automatically removed.&/font&&);
return (&&font color=red&BOM found.&/font&&);
else return (&BOM Not Found.&);
function rewrite ($filename, $data) {
$filenum = fopen($filename, &w&);
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum); }
保存为a.php,放在网站根目录访问下就可以了。
ps:如果在访问a.php的时候报错如:
PHP Fatal error: Allowed memory size of
bytes exhausted
那就试用下面的修改版检查出有bom的文件自己修改吧
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
$basedir=$_GET['dir'];
$basedir = '.';
$auto = 1;
checkdir($basedir);
echo (&&br&&br&&font color=green&completed!&/font&&br&&);
function checkdir($basedir) {
if ($dh = opendir($basedir))
{ while (($file = readdir($dh)) !== false)
if ($file != '.' && $file != '..')
if (!is_dir($basedir.&/&.$file))
//echo &filename: $basedir/$file &;
checkBOM(&$basedir/$file&);
$dirname = $basedir.&/&.$
checkdir($dirname);
closedir($dh);
function checkBOM ($filename) {
$contents = file_get_contents($filename,NULL,NULL,0,10);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
//$rest = substr($contents, 3);
//rewrite ($filename, $rest);
echo ($filename.&--------&.&&font color=red&BOM found&/font&&br&&);
//return (&&font color=red&BOM found.&/font&&);
//else return (&BOM Not Found.&);
function rewrite ($filename, $data) {
$filenum = fopen($filename, &w&);
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
等等,下面还有精彩的文章哟:
最近更新 ]
随机图赏 ]dedecms图片集上传图片出错该如何解决? - 常见问题 - 嘉绵之恋,建站之友。
dedecms图片集上传图片出错该如何解决?
&&&&dede5.6在使用中经常会爆出图片集无法上传图片的错误,直到现在的v5.7最新版本,官方论坛也从未给出任何解决方案。经过嘉绵之恋的认真分析发现,原来是utf-8的bom问题,这也是一般人不曾想到的,因为一般人首先想到的就是修改程序代码,改来改去又测试来测试去,程序始终没发现破绽,问题也未能解决。原来是bom这厮~终于把你揪出来了。废话不说了,就把我测试正解的方案贴出来与大家分享:首先看一下错误,如下图:找到提示出错的相关js文件:/dede/handlers.js发现有这么一段:&function&uploadSuccess(file,&serverData)&{
var&progress&=&new&FileProgress(file,&this.customSettings.upload_target);
if&(serverData.substring(0,&7)&===&&FILEID:&)&{
addImage(&swfupload.php?dopost=thumbnail&id=&&+&serverData.substring(7),&serverData.substring(7));
progress.setStatus(&获取缩略图...&);
progress.toggleCancel(false);
addImage(&img/error.gif&,&0);
progress.setStatus(&有错误!&);
progress.toggleCancel(false);
alert(serverData);
}&catch&(ex)&{
this.debug(ex);
}其中:if (serverData.substring(0, 7) === &FILEID:&)这句的判断为假导致如上图的问题。查看serverData的值没有发现什么异常,但是判断始终为假问题就出在serverData.substring(0, 7) 始终都不等于&FILEID:&调整了截取边界也一样有错,于是乎,请来了HttpAnalyzer一看,哦,原来如此:虽然这么看着没什么问题但实际问题在这:前面多了三个字节:ef bb bf大致一找原来这是utf-8的bom问题,是修改文件时在文件头自动加入的这三个字节导致的连锁反应但是那么多文件要找出是哪个文件的问题倒是有点头大……后来找到一篇文章《转两篇 移除PHP中BOM的方法》按照其中给出的清除BOM的代码解决了这个问题代码如下:&&?php
//remove&the&utf-8&boms
//by&magicbug&at&gmail&dot&com
if&(isset($_GET['dir'])){&//config&the&basedir
$basedir=$_GET['dir'];
$basedir&=&'.';
$auto&=&1;
checkdir($basedir);
function&checkdir($basedir){
if&($dh&=&opendir($basedir))&{
while&(($file&=&readdir($dh))&!==&false)&{
if&($file&!=&'.'&&&&$file&!=&'..'){
if&(!is_dir($basedir.&/&.$file))&{
echo&&filename:&$basedir/$file&&;
echo&checkBOM(&$basedir/$file&).&&&br&&;
$dirname&=&$basedir.&/&.$
checkdir($dirname);
closedir($dh);
function&checkBOM&($filename)&{
$contents&=&file_get_contents($filename);
$charset[1]&=&substr($contents,&0,&1);
$charset[2]&=&substr($contents,&1,&1);
$charset[3]&=&substr($contents,&2,&1);
if&(ord($charset[1])&==&239&&&&ord($charset[2])&==&187&&&&ord($charset[3])&==&191)&{
if&($auto&==&1)&{
$rest&=&substr($contents,&3);
rewrite&($filename,&$rest);
return&(&&font&color=red&BOM&found,&automatically&removed.&/font&&);
return&(&&font&color=red&BOM&found.&/font&&);
else&return&(&BOM&Not&Found.&);
function&rewrite&($filename,&$data)&{
$filenum&=&fopen($filename,&&w&);
flock($filenum,&LOCK_EX);
fwrite($filenum,&$data);
fclose($filenum);&}
?&保存为1.php,放在网站根目录访问下就可以了。
转载请注明出处为“本文转载于『嘉绵之恋』原地址”
0分/0个投票
Copyright (C)2014 邹林 Rights Reserved.
Powered By来源:织梦云
&&&&&&&&&& 今天在制作客户的dedecms婚纱模板的时候使用dedecms的图集功能上传图片时会提示FILEID:X错误,缩略图显示为红色Error本地安装了一下DEDECMS新版的V57GBK,测试了一番,没有发现该问题,登录到这个dedecms婚纱网站后台,注意到为UTF-8版本,遂详细测试了一番,查看了管理目录下的swfupload.php做了几个断点测试,在生成缩略图那里找到了问题的原因。
&&&&&& 查看一下你的include/common.inc.php 的文件格式UTF-8编码的朋友,注意将格式调整为UTF-8 无BOM格式,GBK编码的朋友,注意将格式调整为ANSI(使用NotePad++,菜单栏有一格式菜单,打开即可调整文件格式,当然也可以选择DW,Editeplus 云云)
&&&&&& 另外需要注意一点,如果语言编码使用的为UTF-8编码的朋友,一定注意,不要用记事本打开修
改保存任何系统文件。
&&&&&& 搜索论坛的时候,发现有些已经解决的朋友分享了解决办法,其中天若千颖 给出了一个有BOM文件检测的小工具:本文内容下半部分有相关说明、附件。办法总比问题多,遇到问题,我们可以先从论坛入手,解决问题,咱们大家互相分享!&&&&&&&&&&&&&&&&&&&&&&&& &&by:的鱼
如图,一些朋友遇到类似的情况,上传图片是凸显错误提示,但是在附件管理里面能够看到已经上传成功的图片文件。
现在提供一个缩略图修复文件,保存为a.php,放在网站根目录访问下就可以了。
s:如果在访问a.php的时候报错如:
PHP Fatal error: Allowed memory size of
bytes exhausted
那就试用下面的修改版检查出有bom的文件自己修改吧。
//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
&$basedir=$_GET['dir'];
&$basedir = '.';
$auto = 1;
checkdir($basedir);
echo (&&br&&br&&font color=green&completed!&/font&&br&&);
function checkdir($basedir)
&if ($dh = opendir($basedir))
&&while (($file = readdir($dh)) !== false)
&&&if ($file != '.' && $file != '..')
&&&&if (!is_dir($basedir.&/&.$file))
&&&&&//echo &filename: $basedir/$file &;
&&&&&checkBOM(&$basedir/$file&);
&&&&&$dirname = $basedir.&/&.$
&&&&&checkdir($dirname);
&&closedir($dh);
function checkBOM ($filename) {
&$contents = file_get_contents($filename,NULL,NULL,0,10);
&$charset[1] = substr($contents, 0, 1);
&$charset[2] = substr($contents, 1, 1);
&$charset[3] = substr($contents, 2, 1);
&if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
&&if ($auto == 1) {
&&&//$rest = substr($contents, 3);
&&&//rewrite ($filename, $rest);
&&&echo ($filename.&--------&.&&font color=red&BOM found&/font&&br&&);
&&} else {
&&&//return (&&font color=red&BOM found.&/font&&);
&//else return (&BOM Not Found.&);
function rewrite ($filename, $data) {
&$filenum = fopen($filename, &w&);
&flock($filenum, LOCK_EX);
&fwrite($filenum, $data);
&fclose($filenum);
附件下载:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
用织梦建站时,有时候我们会给某栏目绑定二级域名,并开启织梦Dedecms开启多.....
织梦日更新后,就添加了很多针对手机移动端的设计,最大的设计就是.....
织梦日更新后,就添加了很多针对手机移动端的设计,最大的设计就是.....
以下是部分代码,红色部分,即为调用的时间代码。其他代码,可在图3页面,.....
最佳分辨率,建议使用Chrome、Firefox、Safari、ie10版本浏览器。
还没有账号
用户名登录用户名或密码错误
用第三方帐号直接登录
您可以选择直接注册或用第三方帐号登录网站,一分钟完成注册现在位置:
最近安装了dedecms官方5.7版本的程序,在发表文章的时候却发现了一个问题,就是在发表文章过程中通过编辑器上传图片的时候,图片上传不了,给出的错误提示是:"Upload filetype not allow......",经作者仔细研究终于想出了解决办法,在这里和大家分享一下。
其实很简单,找到 /include/uploadsafe.inc.php 这个文件,在该文件的第45行处做下面的修改:
$imtypes = array
$imgtypes = array
以上修改完毕更新一下全站缓存这个问题就解决了。
您可能感兴趣的文章
dedeCMS中提示DedeTag Engine Create File False的错误的解决办法
该如何解决php运行出现Call to undefined function curl_init错误
延迟加载图片的 jQuery 插件(Lazy Load)用法详解
IE6透明PNG图片显示错误的解决办法
dedeCMS(织梦)网站服务器目录安全设置经验分享
三种加强织梦CMS安全性的方法推荐
上传内容中的图片过宽的解决办法
FckEditor添加右键菜单-图片删除功能}

我要回帖

更多关于 织梦无法上传图片 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信