php手机端上传图片,php,js实现手机图片上传功能(thinkphp,mobile.js)

页面内容显示和js加载

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);

});

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_image' => 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_image'] == 1)

{

$config['attachment_thumbnail'] = array(

'min' => array(

"w" => 170,

"h" => 110

),

'square' => array(

"w" => 90,

"h" => 90

)

);

import("@.ORG.Images");

$image = new Images();

foreach($config['attachment_thumbnail'] AS $key => $val)

{

$thumb_file[$key] = $upload_data['file_path'] . $val['w'] . 'x' . $val['h'] . '_' . basename($upload_data['full_path']);

$image->initialize(array(

'quality' => 90,

'source_image' => $upload_data['full_path'],

'new_image' => $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['attachment_thumbnail'] = array(

'min' => array(

"w" => 170,

"h" => 110

),

'square' => array(

"w" => 90,

"h" => 90

)

);

foreach($config['attachment_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['attachment_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_image' => 1,

'file_name' => $data['file_name'],

'access_key' => $data['access_key'],

'attachment' => $data['user_que_content'],

);

if ($size)

{

$attach_list[$data['id']]['thumb'] = $attach_url . '/' . $config['attachment_thumbnail'][$size]['w'] . 'x' . $config['attachment_thumbnail'][$size]['h'] . '_' . $data['file_location'];

}

}

return $attach_list;

}

4.效果图

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值