有个小项目,用的ECSHOP的框架,正常图片在用ECSHOP上传图片类后,偶尔会有图片显示错位、断图、部分颗粒显示的问题,请问这种结果是图片自身的问题还是其他的什么问题?
以下提供下ECSHOP的上传图片代码:
以免代码太长,upload_image方法的验证跟路径创建就没放上来
/**
* 图片上传的处理函数
*
* @access public
* @param array upload 包含上传的图片文件信息的数组
* @param array dir 文件要上传在$this->data_dir下的目录名。如果为空图片放在则在$this->images_dir下以当月命名的目录下
* @param array img_name 上传图片名称,为空则随机生成
* @return mix 如果成功则返回文件名,否则返回false
*/
function upload_image($upload, $dir = '', $img_name = '') {
if ($this->move_file($upload, $img_name))
{
return str_replace(ROOT_PATH, '', $img_name);
}
else {
$this->error_msg = sprintf($GLOBALS['_LANG']['upload_failure'], $upload['name']);
$this->error_no = ERR_UPLOAD_FAILURE;
return false;
}
}
/**
* @access public
* @param
*
* @return void
*/
function move_file($upload, $target)
{
if (isset($upload['error']) && $upload['error'] > 0) {
return false;
}
if (!move_upload_file($upload['tmp_name'], $target)) {
return false;
}
return true;
}
/**
* 将上传文件转移到指定位置
*
* @param string $file_name
* @param string $target_name
* @return blog
*/
function move_upload_file($file_name, $target_name = '')
{
if (function_exists("move_uploaded_file"))
{
if (move_uploaded_file($file_name, $target_name))
{
@chmod($target_name,0755);
return true;
}
else if (copy($file_name, $target_name))
{
@chmod($target_name,0755);
return true;
}
}
elseif (copy($file_name, $target_name))
{
@chmod($target_name,0755);
return true;
}
return false;
}
慕后森
海绵宝宝撒
www说