首頁 > 後端開發 > php教程 > PHP+Ajax,该怎么处理

PHP+Ajax,该怎么处理

WBOY
發布: 2016-06-13 12:24:54
原創
1068 人瀏覽過

PHP+Ajax

<br /><script><br />            function ajaxFileUpload() {<br />                $.ajax({<br />                    url: 'a.php',<br />                    type: 'post',<br />                    dateType: 'json',<br />                    data: {upfile:$("#ss").val()},<br />                    success: function (result) {<br />                       alert("success");<br />                    },<br />                    error: function (result) {<br />                        alert("error");<br />                    }<br />                });<br />            }<br />        </script><br /> <body>  <br />        <form enctype="multipart/form-data" action="a.php" method="post" name="upform" id="upform"><br />          上传文件:  <br />          <input name="upfile" type="file" onchange="ajaxFileUpload()" id="ss"><br />          <input type="submit" value="上传"><br><br />        </form><br />    </body>  <br /><br />a.php<br /> if (!is_uploaded_file($_FILES["upfile"]["tmp_name"]))<br />       //如果我直间提交表单  $_FILES是有值的  (Array ( [upfile] => Array ( [name] => 1.jpg [type] => image/jpeg [tmp_name] => C:\Windows\phpC106.tmp [error] => 0 [size] => 7108 ) ) )<br />      //但我用ajax提交时,  $_FILES是没有值,这个要怎么解决?<br />    {<br />        echo "图片不存在!";<br />        exit;<br />    }<br /><br />
登入後複製

------解决思路----------------------
你这样做是行不通的。异步上传文件我知道的有三种方法,第一种HTML5 FILE API方法,可以直接读取文件内容。第二种通过Flash插件来上传,所有工作交由Flash来完成,比如SwfUpload。第三种就是纯JavaScript完成异步上传。下面我们来介绍第三种方法。要借用iframe。参考代码:
<br /><div class="file_upload_control"><br />  <form class="file_control_form" enctype="multipart/form-data" action="ajax/upload.image.php"<br />  target="iframe_2C4B15FAD29E311E3CBACEADE9EE8F4A" method="post"><br />    <input type="hidden" name="APC_UPLOAD_PROGRESS" class="apc_id" value="2C4B15FAD29E311E3CBACEADE9EE8F4A"<br />    /><br />    <input type="hidden" value="2C4B15FAD29E311E3CBACEADE9EE8F4A" name="file_control_guid"<br />    /><br />    <input type="hidden" value="module_menu" name="file_control_module" /><br />    <!-----2C4B15FAD29E311E3CBACEADE9EE8F4A 这个是GUID-----><br />    可以同时上传多个文件,用GUID进行区分<br />    <input name="2C4B15FAD29E311E3CBACEADE9EE8F4A" class="file_control" type="file"<br />    /><br />    <div class="file_preview"> <!---- 图片上传前预览-----><br />      <img  class="file_preview_img" / alt="PHP+Ajax,该怎么处理" ><br />    </div><br />    <div class="opacity file_error"> <!----- 文件验证错误提示----><br />      <div class="tip"><br />      </div><br />    </div><br />    <div class="opacity file_progress"> <!---- 文件上传进度条-----><br />      <div class="total"><br />        <div class="current"><br />        </div><br />      </div><br />    </div><br />    <div class="opacity file_uploaded"> <!----- 上传成功后的Logo标志------><br />      <div class="success"><br />      </div><br />    </div><br />    <div class="delete">    <!----- 上传成功后 删除按钮 -----><br />      <img  src="images/upload_delete.png" / alt="PHP+Ajax,该怎么处理" ><br />    </div><br /></div><br /></form><br /><!---- iframe 是异步提交的关键, 注意iframe name属性要和form target中的值完全一致 -----><br /><iframe   style="max-width:90%" src="" id="iframe_2C4B15FAD29E311E3CBACEADE9EE8F4A"<br />name="iframe_2C4B15FAD29E311E3CBACEADE9EE8F4A"><br /></iframe><br /></div><br />
登入後複製

<br />$(document).on('change','.file_upload_control .file_control',function(){<br />    //第一步获取file值<br />    var file = $(this).val();<br />   //第二步上传前校验<br />    if(!CheckFile(file)){<br />        ClearFileControl($(this)); //清空文件的内容<br />        return;<br />    }<br />     //第三步,如果上传的是图片,在本地进行上传前的预览<br />     PreviewImg($file);<br />     //第四步,提交上传<br />     $(this).parent().submit(); //提交form<br />     //第五步,如果上传的文件比较大(100M),查询进度,记得配置服务器支持大文件,否则上传不会成功!<br />     var file_guid = $(this).siblings('.file_control_guid').val();<br />     //第六步,查询文件上传进度,需要服务端程序进行配合,我这里举例的是PHP代码,需要使用PHP_APC.dll第三方插件协助       完成<br />     setTimeout('GetUploadProgress("'+file_guid+'"),500);<br />});<br />
登入後複製

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板