如何运用PHP Ajax实现图片的无刷新上传

WBOY
リリース: 2016-06-13 11:06:14
オリジナル
970 人が閲覧しました

作为一个PHP Ajax客户端页面代码: index.html

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"><span class="tag-name">html</span><span class="tag">></span></span></font></strong><span>   </span></span></li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"><span class="tag-name">body</span><span class="tag">></span></span></font></strong><span>   </span>
</li>
<li class="alt">
<span></span><strong><font color="#006699"><span class="tag"><span class="tag-name">h1</span><span class="tag">></span></span></font></strong><span>Ajax file upload sample</span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">h1</span><span class="tag">></span><span class="tag"><span class="tag-name">br</span><span class="tag">/></span><span class="tag"><span class="tag-name">input</span></span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"uplaod"</font></span><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"btn_send"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"button"</font></span><span> </span><span class="attribute"><font color="#ff0000">value</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"上传测试"</font></span><span class="tag"><strong><font color="#006699">/></font></strong></span><span>   </span>
</li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"><span class="tag-name">div</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">result</font></span><strong><font color="#006699"><span class="tag">></span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span></font></strong><span>   </span>
</li>
<li class="alt">
<span></span><strong><font color="#006699"><span class="tag"><span class="tag-name">PRE</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">class</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">js</font></span><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"code"</font></span><strong><font color="#006699"><span class="tag">></span><span class="tag"><span class="tag-name">SCRIPT</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">LANGUAGE</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">JavaScript</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span>   </span>
</li>
<li class=""><span>// 上传函数   </span></li>
<li class="alt"><span>function btn_send.onclick() {   </span></li>
<li class="">
<span></span><span class="attribute"><font color="#ff0000">data</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">""</font></span><span>   </span>
</li>
<li class="alt">
<span></span><span class="attribute"><font color="#ff0000">spliter</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">"-------7d8d733180846"</font></span><span>   </span>
</li>
<li class="">
<span></span><span class="attribute-value"><font color="#0000ff">data</font></span><span class="attribute"><font color="#ff0000">datadata</font></span><span> = data + spliter + "rn"   </span>
</li>
<li class="alt">
<span></span><span class="attribute-value"><font color="#0000ff">data</font></span><span class="attribute"><font color="#ff0000">datadata</font></span><span> = data + "Content-Disposition: form-data; </span><span class="attribute"><font color="#ff0000">name</font></span><span>="photofile"; </span><span class="attribute"><font color="#ff0000">filename</font></span><span>="C:\a.txt"rn"   </span>
</li>
<li class="">
<span>// </span><span class="attribute-value"><font color="#0000ff">data</font></span><span class="attribute"><font color="#ff0000">datadata</font></span><span> = data + "Content-Type: image/pjpeg" + vbCrLf   </span>
</li>
<li class="alt">
<span></span><span class="attribute-value"><font color="#0000ff">data</font></span><span class="attribute"><font color="#ff0000">datadata</font></span><span> = data + "Content-Type: text/plain" + "rn" + "rn"   </span>
</li>
<li class="">
<span></span><span class="attribute"><font color="#ff0000">text</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">"My name is Wilson Lin."</font></span><span>   </span>
</li>
<li class="alt">
<span></span><span class="attribute"><font color="#ff0000">postLength</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">text</font></span><span>.length + data.length + 2 + spliter.length + 4   </span>
</li>
<li class="">
<span></span><span class="attribute"><font color="#ff0000">package</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">data</font></span><span> + text + "rn" + spliter + "--rn"   </span>
</li>
<li class="alt"><span>alert(package)   </span></li>
<li class=""><span>// 把XML文档发送到Web服务器   </span></li>
<li class="alt">
<span>var </span><span class="attribute"><font color="#ff0000">xmlhttp</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> ActiveXObject("Microsoft.XMLHTTP");   </span>
</li>
<li class=""><span>xmlhttp.open("POST","./upload.php",false);   </span></li>
<li class="alt">
<span>xmlhttp.setRequestHeader("Content-Type", "multipart/form-data; </span><span class="attribute"><font color="#ff0000">boundary</font></span><span>=-----7d8d733180846");   </span>
</li>
<li class=""><span>xmlhttp.setRequestHeader("Content-Length", postLength);   </span></li>
<li class="alt"><span>xmlhttp.send(package);   </span></li>
<li class=""><span>// 显示服务器返回的信息   </span></li>
<li class="alt">
<span></span><span class="attribute"><font color="#ff0000">result.innerHTML</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">xmlhttp</font></span><span>.ResponseText;   </span>
</li>
<li class=""><span>}   </span></li>
<li class="alt">
<span></span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">SCRIPT</span><span class="tag">></span></font></strong><span>   </span>
</li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">PRE</span><span class="tag">></span></font></strong><span>   </span>
</li>
<li class="alt">
<span></span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">body</span><span class="tag">></span></font></strong><span>   </span>
</li>
<li class="">
<span></span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">html</span><span class="tag">></span></font></strong><span> </span>
</li>
</ol>
ログイン後にコピー

PHP Ajax服务器端代码: upload.php

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span>   </span></span></li>
<li class=""><span>// $_FILES['photofile']:是获得上传图片的数组   </span></li>
<li class="alt"><span>// $uploadfile:存放地址   </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">uploadfile</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">"D:/"</font></span><span>.$_FILES['photofile']['name'];   </span>
</li>
<li class="alt"><span>copy( $_FILES['photofile']['tmp_name'], $uploadfile );   </span></li>
<li class="">
<span>echo "URL: </span><strong><font color="#006699"><span class="tag"><span class="tag-name">a</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">href</font></span><span>='http://localhost/".$_FILES['photofile']['name</span><span class="attribute-value"><font color="#0000ff">']."'</font></span><span> </span><span class="attribute"><font color="#ff0000">target</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">'_blank'</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span>".$_FILES['photofile']['name']."</span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span class="tag"><span class="tag-name">br</span><span class="tag">/></span></span></font></strong><span>";   </span>
</li>
<li class="alt">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span>  </span>
</li>
</ol>
ログイン後にコピー

以上所写代码就是基本的PHP Ajax实现无刷新图片上传的具体解决办法。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート