因此,我目前找到了名为cropit的照片裁剪插件。演示在这里。因此,我想做的就是获取裁剪后的照片,并将照片的名称上传到mysql数据库,并使用php将其保存到目录中。
到目前为止,我有这个:
HTML:
<form method="POST"> <div class="image-editor"> <div class="cropit-image-preview-container"> <div class="cropit-image-preview"></div> </div> <div class="image-size-label"> Resize image </div> <input type="range" class="cropit-image-zoom-input"> <input type="hidden" name="image-data" class="hidden-image-data" /> <button type="submit">Submit</button> </div> </form>
jQUERY:
$('form').submit(function() { // Move cropped image data to hidden input var imageData = $('.image-editor').cropit('export'); $('.hidden-image-data').val(imageData); // Print HTTP request params var formValue = $(this).serialize(); $('#result-data').text(formValue); // Prevent the form from actually submitting return false; });
我需要的只是php设置代码,因为当我裁剪照片并选择Submit时,jquery返回序列化代码,而我通常不熟悉的所有这些代码都会出现。这是jquery返回的序列化代码的几个字符:
image-data=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhE...
1.保存base64编码的图像
<?php //save your data into a variable - last part is the base64 encoded image $encoded = "data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhE"; //decode the url, because we want to use decoded characters to use explode $decoded = urldecode($encoded); //explode at ',' - the last part should be the encoded image now $exp = explode(',', $decoded); //we just get the last element with array_pop $base64 = array_pop($exp); //decode the image and finally save it $data = base64_decode($base64); $file = 'data.png'; //make sure you are the owner and have the rights to write content file_put_contents($file, $data);
2.获取base64编码图像的文件名
$encoded = "data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhE"; $decoded = urldecode($encoded); $exp = explode(';', $decoded); $exp = explode(':', $exp[0]); $image = array_pop($exp); echo ($image);