在網站的開發過程中,文件上傳功能是必不可少的一項功能。而實現這一功能,javascript和php都可做到。本文將介紹如何使用javascript上傳文件給php,以方便網站開發者實現這一功能。
首先,我們來看一個簡單的例子,實現在網頁中上傳一張圖片并在其它頁面中顯示出來。HTML代碼如下:
<form id="uploadForm">
<input type="file" id="upfile" name="upfile">
<input type="button" value="上傳" onclick="javascript:upload();">
</form>
這里的form有個id為uploadForm,里面包含一個input標簽,類型為file,這是上傳文件的控件。還有一個按鈕,提交文件到服務器的功能是由JavaScript實現的。我們來看看Javascript代碼:function upload() {
var fileObj = document.getElementById("upfile").files[0]; //獲取文件對象
var form = new FormData(); //FormData對象
form.append("upfile", fileObj); //文件對象
var xhr = new XMLHttpRequest(); // XMLHttpRequest對象
xhr.open("post", "upload.php", true); //post方式,url為"upload.php"
xhr.onload = function () {
if (xhr.status === 200) { //返回成功
alert("上傳成功!");
var img = document.createElement("img");
img.src = xhr.responseText;
document.body.appendChild(img); //添加到頁面中
}
};
xhr.send(form); //開始上傳
}
上面代碼中,我們首先取得input標簽中的文件對象,然后創建一個FormData對象,并將文件對象添加進去。接著,我們創建一個XMLHttpRequest對象,并使用open()方法和post方式來設置請求地址。最后,使用send()方法發送請求,并處理服務器響應,如果成功,就在新建一個img標簽,將響應的圖片url添加到這個img標簽的src屬性中,最后將這個img添加到頁面中。
最后,我們來看看php中如何接收這個上傳的文件。代碼如下:if(isset($_FILES['upfile'])) {
$file = $_FILES['upfile'];
if($file["error"] == UPLOAD_ERR_OK) {
$filename = $file["name"];
move_uploaded_file($file["tmp_name"], "./uploads/" . $filename);
echo "uploads/" . $filename;
}
}
這里我們通過$_FILES['upfile']來獲取上傳的文件,首先判斷文件上傳是否成功,如果成功了,就將文件移動到指定的目錄,并返回文件所在路徑信息。
總之,上傳文件功能在實際開發中非常重要且常用,本文介紹了javascript上傳文件給php的方法,通過這個方法,我們能夠輕松實現文件上傳功能。上一篇js與php與mysql
下一篇js與php