Php 图像的裁剪和ajax上传

Php 图像的裁剪和ajax上传,php,jquery,ajax,image,upload,Php,Jquery,Ajax,Image,Upload,我想通过ajax上传和裁剪图像 请建议我如何做到这一点。要上传图像,您需要处理上传的javascript过程,如果您使用jquery库,有很多插件可以完成这一工作。 要处理上传过程,您需要php脚本。您正在从ajax向php脚本发送请求,并由它进行上传 要裁剪图像,您需要一个裁剪工具或裁剪脚本。这是一个很酷的工具 处理裁剪后的图像后,需要通过jquery uploader插件或其他jquery或javascript ajax代码执行上载过程(php) 下面是Jquery+PHP[Cake PHP

我想通过ajax上传和裁剪图像


请建议我如何做到这一点。

要上传图像,您需要处理上传的javascript过程,如果您使用jquery库,有很多插件可以完成这一工作。 要处理上传过程,您需要php脚本。您正在从ajax向php脚本发送请求,并由它进行上传

要裁剪图像,您需要一个裁剪工具或裁剪脚本。这是一个很酷的工具

处理裁剪后的图像后,需要通过jquery uploader插件或其他jquery或javascript ajax代码执行上载过程(php)

下面是Jquery+PHP[Cake PHP]的代码
Here is the code Jquery + PHP  [Cake PHP]

View file upload.ctp

<script type="text/javascript" src="http://demos.9lessons.info/ajaximageupload/scripts/jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $('#photoimg').on('change', function(){
    $("#preview").html('');
    $("#preview").html('<img src="/images/ajax-loader.gif" alt="Uploading...."/>');
    $("#imageform").ajaxForm({target: '#preview',success: showResponse}).submit();
  });

});


</script>

<form id="imageform" method="post" enctype="multipart/form-data" action='/media/upload'>
Upload image <input type="file" name="photoimg" id="photoimg" />
</form>

<div id='preview'></div>



create a function with name upload in Media controller



  function upload(){
       $this->layout = '';

      $session_id='1'; // User session id
      $path = "images/media/images/original/";
      $valid_formats = array("jpg", "png", "gif", "bmp","jpeg");

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
      //pr($_FILES);die;
      //if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
        $name = $_FILES['photoimg']['name'];
        $size = $_FILES['photoimg']['size'];
          if(strlen($name)) {
          list($txt, $ext) = explode(".", $name);
            if(in_array($ext,$valid_formats)){
                if($size<(1024*1024)) { // Image size max 1 MB
                $txt=str_replace(" ","_",$txt);
                $actual_image_name = $txt."_".time().".".$ext;
                $tmp = $_FILES['photoimg']['tmp_name'];
                App::import('Vendor', 'resize');
                if(move_uploaded_file($tmp, $path.$actual_image_name)) {  //Code for image resize
                  //mysql_query("UPDATE users SET profile_image='$actual_image_name' WHERE uid='$session_id'");
                  // save this to DB into Temp Selection table set USer wise and Capsule or individual Board wise
                  echo "<img src='/images/media/images/".$actual_image_name."' class='preview'><br/><a href='javascript:void(0);' id='upload_submit'>Submit</a>";
                }
                else
                echo "failed";
                }
            else
            echo "Image file size max 1 MB";
            }
          else
          echo "Invalid file fo`enter code here`rmat..";
          }
        else
        echo "Please select image..!";
        exit;
      }

    }
查看文件upload.ctp $(文档).ready(函数(){ $('#photoimg')。on('change',function(){ $(“#预览”).html(“”); $(“#预览”).html(“”); $(“#imageform”).ajaxForm({target:'#preview',success:showResponse}).submit(); }); }); 上传图像 在媒体控制器中创建名为upload的函数 函数上传(){ $this->layout=''; $session_id='1';//用户会话id $path=“images/media/images/original/”; $valid_formats=数组(“jpg”、“png”、“gif”、“bmp”、“jpeg”); 如果(isset($\u POST)和$\u服务器['REQUEST\u METHOD']=“POST”){ //pr($\u文件);die; //如果(isset($\u POST)和$\u服务器['REQUEST\u METHOD']=“POST”){ $name=$\u文件['photoimg']['name']; $size=$\u文件['photoimg']['size']; if(strlen($name)){ 列表($txt,$ext)=分解(“.”,$name); if(在数组中($ext,$valid_格式)){
如果你可以尝试看看jQuery的插件页面,我相信你会找到一个可以做到这一点的插件。你使用的是哪种服务器端语言?