代码之家  ›  专栏  ›  技术社区  ›  XMen

图像的裁剪和Ajax上传

  •  -2
  • XMen  · 技术社区  · 15 年前

    我想通过Ajax上传和裁剪图像。

    请建议我怎么做。

    2 回复  |  直到 13 年前
        1
  •  3
  •   Conex    15 年前

    要上载图像,您需要处理上载的javascript进程,如果您使用jquery库,则有许多插件可以执行此操作。 要处理上载过程,您需要PHP脚本。您正在从Ajax向PHP脚本发送请求,它将进行上载。

    要裁剪图像,您需要一个裁剪工具或裁剪脚本,这里有一个很酷的。 http://www.webresourcesdepot.com/jquery-image-crop-plugin-jcrop/

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

        2
  •  0
  •   Shubham Monga    13 年前
    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;
          }
    
        }