如何用PHP實作FTP檔案上傳進度條
一、背景介紹
在網站開發中,檔案上傳是常見的功能。而對於大檔案的上傳,為了提高使用者體驗,我們常常需要向使用者顯示一個上傳進度條,讓使用者知道檔案上傳的進程。本文將介紹如何使用PHP實作FTP檔案上傳進度條的功能。
二、FTP檔案上傳進度條的實作方法
三、PHP程式碼範例
前端頁面範例(upload.html):
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>FTP文件上传进度条</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(document).ready(function () { $("form").submit(function (event) { event.preventDefault(); var formData = new FormData($(this)[0]); $.ajax({ url: 'upload.php', type: 'POST', data: formData, processData: false, contentType: false, xhr: function () { var xhr = new window.XMLHttpRequest(); xhr.upload.addEventListener("progress", function (evt) { if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; // 更新进度条 $("#progress-bar").width(Math.round(percentComplete * 100) + '%'); } }, false); return xhr; }, success: function () { alert('文件上传成功!'); } }); }); }); </script> <style> #progress-bar { width: 0%; height: 20px; background-color: #1E90FF; } </style> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form> <div id="progress-bar"></div> </body> </html>
後端PHP範例(upload.php):
<?php $ftp_server = "Your_FTP_Server"; $ftp_user = "Your_FTP_Username"; $ftp_password = "Your_FTP_Password"; $remote_file_path = "/upload/"; if ($_FILES["file"]["error"] > 0) { echo "文件上传失败!"; } else { $file_name = $_FILES["file"]["name"]; $file_tmp = $_FILES["file"]["tmp_name"]; $file_size = $_FILES["file"]["size"]; $ftp_conn = ftp_connect($ftp_server); ftp_login($ftp_conn, $ftp_user, $ftp_password); ftp_pasv($ftp_conn, true); $remote_file = $remote_file_path . $file_name; if (ftp_put($ftp_conn, $remote_file, $file_tmp, FTP_BINARY)) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } ftp_close($ftp_conn); } ?>
在以上程式碼範例中,前端頁面使用了jQuery函式庫來處理AJAX請求,透過監聽上傳進度事件xhr.upload.addEventListener ("progress", function (evt) {})
來即時更新進度條的寬度。後端PHP程式碼接收上傳的文件,並使用FTP連線將檔案上傳至FTP伺服器。
四、注意事項
五、總結
透過上述方法,我們可以使用PHP實作FTP檔案上傳進度條的功能。這樣,當使用者上傳大檔案時,可以提高使用者體驗,讓使用者清楚地看到檔案上傳的進度,而不用一直等待上傳結束。希望本文的內容對大家有幫助。
以上是如何用PHP實作FTP檔案上傳進度條的詳細內容。更多資訊請關注PHP中文網其他相關文章!