ajax base64 太长,ajax base64 CI获取参数后处理的一个小问题

做了一个项,现在碰见一个问题就是在处理头象时要上传图片,上传图片后要进行裁剪,裁剪后的小图预览是BASE64的方式存在,现在想把这个在服务器上生成图片,生成图片就是把这个BASE64数据进行传递,传递过程中要用到AJAX,但是就是得不到数据。

裁剪完成后,得到一个DATAURL,这个要能过AJAX传递到 /uploadimg/index,

clipFinish: function(dataURL) {

// 裁剪完成的回调函数。this指向图片对象,会将裁剪出的图像数据DataURL作为参数传入

data=encodeURIComponent(dataURL);

$.ajax({

url: '/uploadimg/index/',

data: {'str':data},

type: 'post',

dataType: 'JSON',

})

alert(dataURL);

uploadimg/index 如下:

if (! defined ( 'BASEPATH' ))

exit ( 'No direct script access allowed' );

class Uploadimg extends CI_Controller {

function __construct() {

parent::__construct ();

}

public function index() {

if ($this->session->userdata ( 'manage_role' ) == '') {

header ( "Content-Type:text/html;charset=utf-8" );

echo 'alert("请登录 !");';

echo 'window.location.href="' . site_url ( 'index' ) . '";';

exit ();

}

if ($this->session->userdata ( 'manage_role' ) != '10') {

header ( "Content-Type:text/html;charset=utf-8" );

echo 'alert("您没有此操作权限 !");';

echo 'window.location.href="' . site_url ( 'index' ) . '";';

exit ();

}

$php_path = dirname(__FILE__) . '/';

$php_url = dirname($_SERVER['PHP_SELF']) . '/';

//文件保存目录路径

$save_path = $php_path . '/../../public/attached';

echo $php_path."
";

echo $php_url."
";

echo $save_path."
";

$base64_image_contentx = $_POST["str"];;

$base64_image_content = htmlspecialchars($base64_image_contentx);

base64_image_content($base64_image_content,$save_path);

header ( "Content-Type:text/html;charset=utf-8" );

echo 'alert('base64_imaghe_content');';

echo 'window.location.href="#";';

exit ();

}

}

function base64_image_content($base64_image_content,$path){

//匹配出图片的格式

if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){

$type = $result[2];

$new_file = $path."/".date('Ymd',time())."/";

if(!file_exists($new_file)){

//检查是否有该文件夹,如果没有就创建,并给予最高权限

mkdir($new_file, 0700);

}

$new_file = $new_file.time().".{$type}";

if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){

return '/'.$new_file;

}else{

return false;

}

}else{

return false;

}

}

?>

请高手指点一下,如何做?

或有其它方法也可以介绍一下。谢了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值