2012-01-28 52 views
5

我想用jquery来提交我的表单,但是它没有在functions.php文件中触发任何东西。我是否需要对多部分/表单数据做特别的事情?我错过了什么吗?我可以使用jQuery文章上传图片吗?

HTML:

<form id="process_image_form" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES); ?>" method="post" > 
    <input type="hidden" name="image_id1" id="image_id1" /> 
    <table class="bordered-table"> 
     <tbody>     
      <tr> 
       <td><input name="file" type="file" id="file"/></td> 
      </tr> 
      <tr> 
       <td><button type="submit" class="btn primary" data-loading-text="Uploading..." id="upload_profile_photo" name="upload_profile_photo">Upload</button></td> 
      </tr> 
     </tbody> 
    </table> 
</form> 

jQuery的电话:

$('#upload_profile_photo').click(function(e) { 
    e.preventDefault(); 

    $.post('gallery/functions.php', $("#process_image_form").serialize(), function(status) { 
     if (status.st) { 
      alert("Photo Uploaded"); 
     } 
    }, "json"); 
}); 

的functions.php:

if (isset($_POST['upload_profile_photo'])) { 

    if (isset($_FILES['file']) && $_FILES['file']['size'] > 0) { 

     //handle file upload 
     $size = filesize($_FILES['file']['tmp_name']); 
     if ($size > $max_file_size * 1024 * 1024) { 
      $res->error = '<div class="alert-message error">Your image file is too large. Reduce its size and try uploading again.</div>'; 
      echo json_encode($res); 
      exit(); 
     } 
     if ($res->error == "") { 
      //process image 
      $res = uploadImage($_FILES['file']['tmp_name'], $user_id); 
      if ($res->st) { 
       unlink($_FILES['file']['tmp_name']); 
       $res->msg = '<div class="alert-message success">Your profile photo was uploaded successfully!</div>'; 
       echo json_encode($res); 
       exit(); 
      } 
     } 
    } 
    else { 
     $res->error = '<div class="alert-message error">Please select a photo to upload.</div>'; 
     echo json_encode($res); 
     exit(); 
    } 
} 

回答

相关问题