作為一個PHP Ajax客戶端頁面代碼: index.html
- <html>
- <body>
- <h1>Ajax file upload sample</h1><br/><input id="uplaod" name="btn_send" type="button" value="上傳測試"/>
- <div id=result></div>
- <PRE class=js name="code"><SCRIPT LANGUAGE=JavaScript>
- // 上傳函數
- function btn_send.onclick() {
- data = ""
- spliter = "-------7d8d733180846"
- datadatadata = data + spliter + "rn"
- datadatadata = data + "Content-Disposition: form-data; name="photofile"; filename="C:\a.txt"rn"
- // datadatadata = data + "Content-Type: image/pjpeg" + vbCrLf
- datadatadata = data + "Content-Type: text/plain" + "rn" + "rn"
- text = "My name is Wilson Lin."
- postLength = text.length + data.length + 2 + spliter.length + 4
- package = data + text + "rn" + spliter + "--rn"
- alert(package)
- // 把XML文檔發送到Web服務器
- var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
- xmlhttp.open("POST","./upload.php",false);
- xmlhttp.setRequestHeader("Content-Type", "multipart/form-data; boundary=-----7d8d733180846");
- xmlhttp.setRequestHeader("Content-Length", postLength);
- xmlhttp.send(package);
- // 顯示服務器返回的信息
- result.innerHTML=xmlhttp.ResponseText;
- }
- </SCRIPT>
- </PRE>
- </body>
- </html>
PHP Ajax服務器端代碼: upload.php
- <?php
- // $_FILES['photofile']:是獲得上傳圖片的數組
- // $uploadfile:存放地址
- $uploadfile = "D:/".$_FILES['photofile']['name'];
- copy( $_FILES['photofile']['tmp_name'], $uploadfile );
- echo "URL: <a href='http://localhost/".$_FILES['photofile']['name']."' target='_blank'>".$_FILES['photofile']['name']."</a><br/>";
- ?>
以上所寫代碼就是基本的PHP Ajax實現無刷新圖片上傳的具體解決辦法。