如何使用PHP陣列實作檔案上傳和下載的功能
一、概述
檔案上傳和下載是Web應用程式中常見的功能之一。 PHP陣列是一種非常有用的資料結構,可以在實作檔案上傳和下載功能時起到很大的幫助作用。本文將介紹如何使用PHP陣列來實現檔案上傳和下載功能,並附上對應的程式碼範例。
二、檔案上傳功能的實作
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
<?php if ($_FILES["file"]["error"] == 0) { $filename = $_FILES["file"]["name"]; $tempname = $_FILES["file"]["tmp_name"]; $destination = "uploads/" . $filename; if (move_uploaded_file($tempname, $destination)) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } } else { echo "文件上传发生错误!"; } ?>
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
<?php if ($_FILES["file"]["error"] == 0) { $filename = $_FILES["file"]["name"]; $tempname = $_FILES["file"]["tmp_name"]; $destination = "uploads/" . $filename; if (move_uploaded_file($tempname, $destination)) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } } else { echo "文件上传发生错误!"; } ?>
三、檔案下載功能的實作
<?php $files = array_diff(scandir("uploads/"), array(".", "..")); foreach ($files as $file) { echo "<a href='download.php?file=$file'>$file</a><br>"; } ?>
<?php if (isset($_GET["file"])) { $filename = $_GET["file"]; $filepath = "uploads/" . $filename; if (file_exists($filepath)) { header("Content-Disposition: attachment; filename=" . $filename); header("Content-Type: application/octet-stream"); header("Content-Length: " . filesize($filepath)); readfile($filepath); } else { echo "文件不存在!"; } } else { echo "参数错误!"; } ?>
<?php $files = array_diff(scandir("uploads/"), array(".", "..")); foreach ($files as $file) { echo "<a href='download.php?file=$file'>$file</a><br>"; } ?> <?php if (isset($_GET["file"])) { $filename = $_GET["file"]; $filepath = "uploads/" . $filename; if (file_exists($filepath)) { header("Content-Disposition: attachment; filename=" . $filename); header("Content-Type: application/octet-stream"); header("Content-Length: " . filesize($filepath)); readfile($filepath); } else { echo "文件不存在!"; } } else { echo "参数错误!"; } ?>
四、總結
透過使用PHP數組,我們可以簡單且有效率地實現文件上傳和下載功能。在檔案上傳中,透過$_FILES陣列取得檔案相關信息,並使用move_uploaded_file函數將檔案移至指定目錄。在檔案下載中,透過$_GET陣列取得要下載的檔案名,並將對應的檔案傳送給瀏覽器。希望本文的範例程式碼對您有所幫助,能夠輕鬆實現文件上傳和下載功能。
以上是如何使用PHP數組實現檔案上傳下載的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!