色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

ajax上傳php

Ajax上傳PHP的簡(jiǎn)單實(shí)現(xiàn)方法 在我們的網(wǎng)站中,用戶上傳圖片和文件已經(jīng)成為常態(tài)。然而,傳統(tǒng)的上傳方式體驗(yàn)較差,用戶體驗(yàn)也不好。這時(shí)我們可以通過(guò)使用Ajax上傳PHP的方式來(lái)改善用戶體驗(yàn)。本文介紹如何通過(guò)Ajax上傳文件。 一、前端HTML代碼 在前端,我們需要制作一個(gè)表單來(lái)獲取用戶需要上傳的文件,請(qǐng)參考下面的HTML代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax上傳 PHP</title>
<style>
.upload{
width:200px;
height:200px;
margin:100px auto;
border:1px solid gray;
display:flex;
justify-content:center;
align-items:center;
font-size:18px;
color:gray;
}
input[type="file"]{
display:none;
}
</style>
</head>
<body>
<div class="upload">
選擇文件...
<input type="file" name="file" id="file">
</div>
</body>
</html>
這段代碼定義了一個(gè)大小為200x200的區(qū)域,用于放置“選擇文件...”超鏈接以及實(shí)際文件上傳的input元素。當(dāng)用戶點(diǎn)擊“選擇文件...”時(shí),我們需要觸發(fā)一個(gè)事件來(lái)調(diào)出文件選擇窗口。 二、JavaScript代碼 我們需要監(jiān)聽(tīng)“選擇文件...”div元素的click事件,并將input元素顯示出來(lái)。JavaScript代碼如下:
var uploadDiv = document.querySelector(".upload");
var uploadInput = document.querySelector("#file");
uploadDiv.addEventListener("click",function(){
uploadInput.click();
})
uploadInput.addEventListener("change",function(){
//獲取要上傳的文件 
var file = this.files[0];
var formData = new FormData();
formData.append("file",file);
//創(chuàng)建ajax對(duì)象
var xhr = new XMLHttpRequest();
//監(jiān)聽(tīng)ajax狀態(tài)
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.responseText);
}
}
//發(fā)送ajax請(qǐng)求(這里的url為處理上傳文件的php文件)
xhr.open("POST","upload.php");
xhr.send(formData);
})
這段代碼中,我們首先獲取了“選擇文件...”div元素和input元素,當(dāng)用戶點(diǎn)擊“選擇文件...”div元素時(shí),我們觸發(fā)了input元素的click事件使其選擇文件。然后,我們監(jiān)聽(tīng)了input元素的change事件,在change事件中獲取了要上傳的文件,將其打包成formData對(duì)象,然后創(chuàng)建了一個(gè)XHR對(duì)象,監(jiān)聽(tīng)了ajax狀態(tài),最后以POST請(qǐng)求方式發(fā)送了ajax請(qǐng)求。需要注意的是,我們的數(shù)據(jù)是在formData對(duì)象中上傳的,而非普通的表單方式。 三、PHP代碼 在PHP中,我們需要對(duì)接收到的上傳文件進(jìn)行處理,將其存儲(chǔ)到服務(wù)器中。PHP代碼如下:
//得到上傳文件的信息
$fileInfo = $_FILES['file'];
//得到上傳文件的名稱
$fileName = $fileInfo['name'];
//得到上傳文件的類型
$fileType = $fileInfo['type'];
//得到上傳文件所在的臨時(shí)文件路徑
$filePath = $fileInfo['tmp_name'];
//得到上傳文件的大小
$fileSize = $fileInfo['size'];
//設(shè)定文件上傳的路徑及名稱規(guī)則
$uploadPath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
if (!file_exists($uploadPath)) {
mkdir($uploadPath, 0777, true);
}
$newName = time() . mt_rand(1000, 9999) . strrchr($fileName, '.');
//將臨時(shí)文件轉(zhuǎn)移到指定目錄下
if (move_uploaded_file($filePath, $uploadPath . $newName)) {
echo $newName .'上傳成功';
} else {
echo '上傳失敗';
}
這段代碼中,我們通過(guò)$_FILES數(shù)組獲取了上傳文件的信息,然后得到了上傳文件的名稱、類型、所在的臨時(shí)文件路徑和大小等信息。接著,我們?cè)O(shè)定了文件上傳的路徑及名稱規(guī)則,如果目錄不存在,則創(chuàng)建該目錄。我們使用當(dāng)前時(shí)間戳加上四位隨機(jī)數(shù)和文件后綴名,作為上傳文件的新名稱。最后,我們將臨時(shí)文件轉(zhuǎn)移到指定目錄下,同時(shí)輸出上傳結(jié)果。 總結(jié) 本文介紹了通過(guò)Ajax上傳PHP的方法,通過(guò)前端HTML代碼和JavaScript代碼獲取用戶的上傳文件,并將其打包成formData對(duì)象上傳到服務(wù)器,最后通過(guò)PHP代碼對(duì)上傳文件進(jìn)行處理,將其存儲(chǔ)到服務(wù)器中。這種方式可以提高用戶上傳文件的體驗(yàn),同時(shí)也更為安全。
上一篇php $values