2012-07-23 62 views
0

我试图添加一个文件上传功能到联系人窗体,但它不会因为某种原因。上传脚本本身工作正常,但是当我将它添加到联系人代码时,jquery脚本使其失败。上传文件和ajax/jquery失败

如你所知,我绝不是专家。

pontact.php

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(function(){ 
     $('#contact_form').submit(function(e){ 
      e.preventDefault(); 
      var form = $(this); 
      var post_url = form.attr('action'); 
      var post_data = form.serialize(); 
      $('#loader', form).html('<img src="loader.gif" /> Please Wait...'); 
      $.ajax({ 
       type: 'POST', 
       url: post_url, 
       data: post_data, 
       success: function(msg) { 
        $(form).fadeOut(500, function(){ 
         form.html(msg).fadeIn(); 
        }); 
       } 
      }); 
     }); 
    }); 
    </script> 
    </head> 
    <body> 
    <form action="process.php" method="post" id="contact_form"> 
     <div> 
      <label for="name">Your Name:</label> 
      <input type="text" name="name" id="name" value="" tabindex="1" /> 
     </div> 
     <div> 
      <label for="email">Your Email:</label> 
      <input type="text" name="email" id="email" value="" tabindex="2" /> 
     </div> 
     <div> 
      <label for="message">Message:</label> 
      <textarea cols="40" rows="8" name="message" id="message"></textarea> 
     </div> 
<div> 
    <input type="hidden" name="MAX_FILE_SIZE" value="512000" /> 
    Send this file: <input name="userfile" type="file" /> 
</div> 
     <div id="loader"> 
      <input type="submit" value="Submit" /> 
     </div> 
    </form> 
    </body> 
    </html> 

Process.php

$uploaddir = '/var/www/download/'; 
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 

echo "<p>"; 

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
    echo "File is valid, and was successfully uploaded.\n"; 
} else { 
    echo "Upload failed"; 
} 

echo "</p>"; 
echo '<pre>'; 
echo 'Here is some more debugging info:'; 
print_r($_FILES); 
print "</pre>"; 

回答

0

文件上传犯规通过jQuery的工作,即使你打电话form.serialize()

可以达到同样通过黑客喜欢使用的iFrame或类似Uploadify效果(好article这里就这一点)基于Flash的上传。