首頁 後端開發 php教程 php+ajax實作檔上傳進度條效果範例程式碼

php+ajax實作檔上傳進度條效果範例程式碼

Jul 23, 2017 am 11:00 AM
php php+ajax 進度

進度條即電腦在處理任務時,即時的,以圖片形式顯示處理任務的速度,完成度,剩餘未完成任務量的大小,和可能需要處理時間,一般以長方形條狀顯示。這篇文章主要介紹了php ajax實現文件上傳進度條的相關資料,需要的朋友可以參考下,本實例是關於php文件上傳時進度條的實現,主要採用ajax技術,另外還運用了html5 ,有需要的朋友可以研究一下。

本實例有兩個檔案:

upload_form.html:

<!DOCTYPE html>
<html>
<head>
<script>
function _(el){
  return document.getElementById(el);
}
function uploadFile(){
  var file = _("file1").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var formdata = new FormData();
  formdata.append("file1", file);
  var ajax = new XMLHttpRequest();
  ajax.upload.addEventListener("progress", progressHandler, false);
  ajax.addEventListener("load", completeHandler, false);
  ajax.addEventListener("error", errorHandler, false);
  ajax.addEventListener("abort", abortHandler, false);
  ajax.open("POST", "file_upload_parser.php");
  ajax.send(formdata);
}

function progressHandler(event){
  _("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total;
  var percent = (event.loaded / event.total) * 100;
  _("progressBar").value = Math.round(percent);
  _("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}

function completeHandler(event){
  _("status").innerHTML = event.target.responseText;
  _("progressBar").value = 0;
}

function errorHandler(event){
  _("status").innerHTML = "Upload Failed";
}

function abortHandler(event){
  _("status").innerHTML = "Upload Aborted";
}
</script>
</head>
<body>
<h2>HTML5 File Upload Progress Bar Tutorial</h2>
<form id="upload_form" enctype="multipart/form-data" method="post">
 <input type="file" name="file1" id="file1"><br>
 <input type="button" value="Upload File" onclick="uploadFile()">
 <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
 <h3 id="status"></h3>
 <p id="loaded_n_total"></p>
</form>
</body>
</html>

##file_upload_parser. php:

<?php
$fileName = $_FILES["file1"]["name"]; // The file name
$fileTmpLoc = $_FILES["file1"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["file1"]["type"]; // The type of file it is
$fileSize = $_FILES["file1"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["file1"]["error"]; // 0 for false... and 1 for true
if (!$fileTmpLoc) { // if file not chosen
  echo "ERROR: Please browse for a file before clicking the upload button.";
  exit();
}
if(move_uploaded_file($fileTmpLoc, "test_uploads/$fileName")){
  echo "$fileName upload is complete";
} else {
  echo "move_uploaded_file function failed";
}
?>

以上是php+ajax實作檔上傳進度條效果範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用PHP更新數據庫中的記錄? 如何使用PHP更新數據庫中的記錄? Sep 21, 2025 am 04:47 AM

toupdateadatabaseRecordInphp,firstConnectusingpDoormySqli,thenusepreparedStatementStoExecuteAsecuteAsecuresqurupDatequery.example.example:$ pdo = newpdo(“ mySql:mysql:host = localHost; localhost; localhost; dbname; dbname = your_database = your_database',yous_database',$ username,$ username,$ squeaste;

如何查看PHP中的文件權限? 如何查看PHP中的文件權限? Sep 22, 2025 am 06:27 AM

usefileperms()togetFilePermissionsasanIntegerAntegatusingsPrintf('%o')

如何在PHP中實現單身模式? 如何在PHP中實現單身模式? Sep 25, 2025 am 12:27 AM

單例模式確保一個類只有一個實例,並提供全局訪問點,適用於需要單一對象協調系統操作的場景,如數據庫連接或配置管理。 2.其基本結構包括:私有的靜態屬性存儲實例、私有構造函數防止外部創建、私有克隆方法防止複制,以及公共靜態方法(如getInstance())用於獲取實例。 3.在PHP中通過調用getInstance()方法獲取唯一實例,無論調用多少次都返回同一對象引用。 4.標準PHP請求模型下無需考慮線程安全,但在長運行或多線程環境中需注意同步問題,而PHP本身不支持原生鎖機制。 5.儘管單例有用,但會

如何在PHP腳本中獲取命令行參數? 如何在PHP腳本中獲取命令行參數? Sep 22, 2025 am 06:19 AM

使用$argv和$argc獲取PHP命令行參數,$argc為參數數量,$argv為參數數組,如phpscript.phphelloworld中$argc=3,$argv=['script.php','hello','world'];用$argv[1]等訪問具體參數;複雜場景可用getopt()處理短選項(-f)和長選項(--file)。

如何在php中使用無效的合併操作員(??)? 如何在php中使用無效的合併操作員(??)? Sep 25, 2025 am 01:28 AM

答案:PHP的空合併操作符(??)用於檢查變量或數組鍵是否存在且非null,若成立則返回其值,否則返回默認值。它可避免使用冗長的isset()檢查,適用於處理未定義變量和數組鍵,如$username=$userInput??'guest',且支持鍊式調用,如$theme=$userTheme??$defaultTheme??'dark',特別適合表單、配置和用戶輸入處理,但僅排除null值,空字符串、0或false均被視為有效值返回。

如何在PHP中獲取URL參數? 如何在PHP中獲取URL參數? Sep 24, 2025 am 05:11 AM

使用$_GET獲取URL參數,如?name=John&age=25;通過isset或空合併運算符檢查存在性,並用filter_input過濾和驗證數據以確保安全。

如何在PHP中創建ZIP文件? 如何在PHP中創建ZIP文件? Sep 22, 2025 am 06:06 AM

UsEtheziparchiveclasStocreateAzipfileInphPbyInstantiatingTheObject,OpenthearchErearchiveWithOpen(),AddingfilesviaAddfile()oradddfromstring(),and closingingitWithClose()和closingitwithClose()

如何在PHP中創建JSON對象? 如何在PHP中創建JSON對象? Sep 22, 2025 am 04:13 AM

使用json_encode()函數可將PHP數組或對象轉換為JSON字符串。例如,關聯數組["name"=>"John","age"=>30,"city"=>"NewYork"]經json_encode()後輸出{"name":"John","age":30,"city":"NewYork&

See all articles