首先,serialize()函数不适用于文件,您应该使对象成为可通过其发布数据的表单对象,并且可以完美地工作。因为我已经测试过了 请退房。表格。
<form name="multiform" id="multiform" action="process.php" method="POST" enctype="multipart/form-data"> name : <input type="text" name="name" id="name"/> </br> message : <input type="text" name="message" id="message" /> </br> Image : <input type="file" name="file" id="file" /> </form> <input type="button" id="multi-post" value="Run Code"></input> <div id="multi-msg"></div>
剧本。
<script type="text/javascript">$(document).ready(function(){$("#multiform").submit(function(e){ var formObj = $(this); var formURL = formObj.attr("action");if(window.FormData !== undefined) { var formData = new FormData(this); $.ajax({ url: formURL, type: 'POST', data: formData, mimeType:"multipart/form-data", contentType: false, cache: false, processdata:false, success: function(data, textStatus, jqXHR) { $("#multi-msg").html('<pre><pre>'+data+'</pre></pre>'); }, error: function(jqXHR, textStatus, errorThrown) { $("#multi-msg").html('<pre><pre >AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</pre></pre>'); } }); e.preventDefault(); e.unbind(); }});$("#multi-post").click(function() { //sending form from here $("#multiform").submit();});});</script>您的php文件与我测试过的文件相同,并且正在运行。
<?php mysql_connect("localhost","root",""); mysql_select_db("ajaxdatabase"); $name=$_POST["name"]; $message=$_POST["message"]; //storing file in filename variable $fileName = $_FILES['file']['name']; //destination dir $to="image/".$fileName; move_uploaded_file($_FILES['file']['tmp_name'],$to); $query=mysql_query("INSERT INTO common(name,message,destination) values('$name','$message','$to') "); if($query){ echo "Your comment has been sent"; } else{ echo "Error in sending your comment"; }?>


