页面内容显示和js加载
<td class="zhaoxiang" id="file_uploader_"><a href="javascript:void(0)" class="zhaox"></a></td>
<script language="javascript" src="__STATIC__/js/mobile/mobile.js"></script>
<script language="javascript" src="__STATIC__/js/plug_module/plug-in_module.js"></script>
<script >
var ATTACH_ACCESS_KEY = '<?php echo $attach_access_key; ?>';
$(document).ready(function () {
init_fileuploader('file_uploader', root + '?m=upload&a=attach_upload&attach_access_key='+ATTACH_ACCESS_KEY);
});
</script>
php代码编写
//检测并上传图片
public function attach_upload()
{
$id = $_REQUEST['id'] ? $_REQUEST['id'] : "";
$attach_access_key = $_REQUEST['attach_access_key'] ? $_REQUEST['attach_access_key'] : "";
import("@.ORG.UploadPic");
$upload = new UploadPic();
$savepath = "data/upload/weixinpic/".date("Y-m-d")."/";
if(!file_exists($savepath)){
$this->createDir($savepath);
}
$upload->initialize(array(
'allowed_types' => 'jpg,jpeg,png,gif',
'upload_path' => $savepath,
'is_p_w_picpath' => FALSE,
'max_size' => 10240
));
if (isset($_REQUEST['qqfile']))
{
$upload->do_upload($_REQUEST['qqfile'], true);
}
else if (isset($_FILES['qqfile']))
{
$upload->do_upload('qqfile');
}
else
{
return false;
}
if ($upload->get_error())
{
switch ($upload->get_error())
{
default:
die("{'error':'错误代码: " . $upload->get_error() . "'}");
break;
case 'upload_invalid_filetype':
die("{'error':'文件类型无效'}");
break;
case 'upload_invalid_filesize':
die("{'error':'文件尺寸过大, 最大允 许尺寸为 10240 KB'}");
break;
}
}
if (! $upload_data = $upload->data())
{
die("{'error':'上传失败, 请与管理员联系'}");
}
if ($upload_data['is_p_w_picpath'] == 1)
{
$config['p_w_upload_thumbnail'] = array(
'min' => array(
"w" => 170,
"h" => 110
),
'square' => array(
"w" => 90,
"h" => 90
)
);
import("@.ORG.Images");
$p_w_picpath = new Images();
foreach($config['p_w_upload_thumbnail'] AS $key => $val)
{
$thumb_file[$key] = $upload_data['file_path'] . $val['w'] . 'x' . $val['h'] . '_' . basename($upload_data['full_path']);
$p_w_picpath->initialize(array(
'quality' => 90,
'source_p_w_picpath' => $upload_data['full_path'],
'new_p_w_picpath' => $thumb_file[$key],
'width' => $val['w'],
'height' => $val['h']
))->resize();
}
}
$ptem['ue_id'] = $ueid;
$add = array();
$add['file_name'] = $upload_data['orig_name'];
$add['access_key'] = $attach_access_key;
$add['add_time'] = time();
$ainfo = M('attach')->where($ptem)->find();
if(!empty($ainfo)){
$maxid = M('attach')->where($ptem)->max("que_sort");
$add['que_sort'] = $maxid + 1;
}else{
$add['que_sort'] = 0;
}
if(false == strpos($upload_data['full_path'],"http://")){
$filepath = "http://".$_SERVER['HTTP_HOST']."/".$savepath.basename($upload_data['full_path']);// 文件真实路径
}else{
$filepath = $savepath.basename($upload_data['full_path']);
}
$add['file_location'] = basename($upload_data['full_path']);
$add['user_que_content'] = $filepath;
$attach_id = M("attach")->add($add);
unset($add);
$output = array(
'success' => true,
'delete_url' => '?m=upload&a=remove_attach&attach_id=' . base64_encode(encode_hash(array(
'attach_id' => $attach_id,
'access_key' => $attach_access_key
))),
'attach_id' => $attach_id,
'attach_tag' => 'attach'
);
//获取内容
$attachinfo = M("attach")->where("id = " . intval($attach_id))->find();
if (!empty($attachinfo))
{
$data = $this->parse_attach_data(array($attachinfo), 'square');
$attach_info = $data[intval($attach_id)];
}
if ($attach_info['thumb'])
{
$output['thumb'] = $attach_info['thumb'];
}
echo htmlspecialchars(json_encode($output), ENT_NOQUOTES);
}
//删除图片附件
public function remove_attach()
{
$attach_id = $_REQUEST['attach_id'] ? trim($_REQUEST['attach_id']) : '';
//判断id是否为空
if(!$attach_id){
echo str_replace(array("\r", "\n", "\t"), '', json_encode(array('rsm' => "图片id不存在无法删除",'errno' => 0,'err' => "图片id不存在无法删除")));
exit;
}
if ($attach_info = decode_hash(base64_decode($attach_id)))
{
$id = $attach_info['attach_id'];
$access_key = $attach_info['access_key'];
//判断图片是否存在
if (! $attach = M("attach")->where("id = " . intval($id) . " AND access_key = '" . $access_key . "'")->find())
{
echo str_replace(array("\r", "\n", "\t"), '', json_encode(array('rsm' => "图片id不存在无法删除",'errno' => 0,'err' => "图片id不存在无法删除")));
exit;
}
//删除图片
M("attach")->where("id = " . intval($id) . " AND access_key = '" . $access_key . "'")->delete();
//删除图片文件
$attach_dir = "data/upload/weixinpic/".date("Y-m-d")."/";
$config['p_w_upload_thumbnail'] = array(
'min' => array(
"w" => 170,
"h" => 110
),
'square' => array(
"w" => 90,
"h" => 90
)
);
foreach($config['p_w_upload_thumbnail'] AS $key => $val)
{
@unlink($attach_dir . $val['w'] . 'x' . $val['h'] . '_' . $attach['file_location']);
}
@unlink($attach_dir . $attach['file_location']);
}
echo str_replace(array("\r", "\n", "\t"), '', json_encode(array('rsm' => null,'errno' => 1,'err' => null)));
exit;
}
//处理并解析附件数据
public function parse_attach_data($attach, $size = null)
{
if (!$attach)
{
return false;
}
$config['p_w_upload_thumbnail'] = array(
'min' => array(
"w" => 170,
"h" => 110
),
'square' => array(
"w" => 90,
"h" => 90
)
);
$attach_url = "data/upload/weixinpic/".date("Y-m-d")."/";
foreach ($attach as $key => $data)
{
$attach_list[$data['id']] = array(
'id' => $data['id'],
'is_p_w_picpath' => 1,
'file_name' => $data['file_name'],
'access_key' => $data['access_key'],
'p_w_upload' => $data['user_que_content'],
);
if ($size)
{
$attach_list[$data['id']]['thumb'] = $attach_url . '/' . $config['p_w_upload_thumbnail'][$size]['w'] . 'x' . $config['p_w_upload_thumbnail'][$size]['h'] . '_' . $data['file_location'];
}
}
return $attach_list;
}
4.效果图
附件:http://down.51cto.com/data/2365571