欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

$.ajax上傳php

張明哲1年前8瀏覽0評論
ajax上傳文件是web開發中常用的一種技術。通過ajax上傳文件可以使頁面在不刷新的情況下將文件上傳到服務器,并且可以在上傳過程中實時地顯示上傳進度。今天,我們將介紹ajax上傳文件到php程序的流程和注意事項。 首先,我們需要知道的是,通過ajax上傳文件的過程需要用到FormData對象。FormData是XMLHttpRequest Level 2中的一個新對象,用于將表單數據以鍵值對的形式存儲,并將其提交給服務器。FormData除了可以上傳文件,還能上傳普通表單域。 提交文件的html代碼如下:
其中,文件上傳域的name屬性值必須為“file”,這是后續在php程序中獲取文件的關鍵。注意:如果在ajax上傳的過程中需要附帶其他表單元素,則表單元素的name值也應該設置為與服務器端對應表單元素的name值一致。 下面是ajax上傳文件的代碼:
$('#uploadForm').submit(function(e) {
e.preventDefault();
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
url: 'upload.php',
type: 'POST',
data: formData,
cache: false,
processData: false,
contentType: false,
xhr: function() {
var xhr = $.ajaxSettings.xhr();
xhr.upload.addEventListener('progress', function(evt) {
if(evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
percentComplete = parseInt(percentComplete * 100);
//實時顯示上傳進度
}
else {
//不支持evt.lengthComputable
}
}, false);
return xhr;
},
success: function(data) {
//上傳成功后的回調函數
},
error: function(xhr, textStatus, errorThrown) {
//上傳失敗后的回調函數
}
});
});
其中,代碼中的FormData對象用于存儲上傳文件,ajax中的cache、processData、contentType三個參數為文件上傳默認參數,其中xhr函數用于實時顯示上傳進度。 如果php程序中需要處理ajax上傳的文件,則需要使用$_FILES數組,如下所示:
$fileName = $_FILES['file']['name']; // 獲取上傳文件名
$fileTempName = $_FILES['file']['tmp_name']; //獲取上傳文件的臨時文件名
move_uploaded_file($fileTempName, 'upload/' . $fileName); //將文件移動到指定目錄
注意:可能會出現上傳文件失敗的情況。此時可以查看php.ini配置文件中的upload_max_filesize和post_max_size兩個參數,如果上傳的文件大小超出了這兩個參數的限制,則上傳會失敗。 以上是ajax上傳文件到php程序的流程和注意事項。如果需要上傳多個文件,則可以將FormData對象中的append方法調用多次,分別將每一個文件添加到FormData對象中,上傳文件時可以使用formData.getAll()方法獲取所有上傳的文件信息。我們應該根據實際需要選擇合適的上傳方案,讓用戶有更好的上傳體驗。