PHP 和 JQ 文件上傳詳解
現在絕大多數網站都需要有文件上傳功能,如上傳頭像、上傳文檔等。PHP 和 JQ 是實現文件上傳功能的常用工具,下面將詳細介紹如何用 PHP 和 JQ 實現文件上傳。
PHP 實現文件上傳
PHP 通過 $_FILES 變量來獲取上傳文件信息,常用的屬性有 name、type、size、tmp_name、error 等。以下是一個簡單的文件上傳 PHP 代碼:
<?php $allowedExts = array("jpg", "jpeg", "gif", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // 獲取文件后綴名 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 2048000) // 小于 2MB && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] >0) { echo "錯誤: " . $_FILES["file"]["error"] . "<br>"; } else { echo "上傳文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件類型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " KB<br>"; echo "文件臨時存儲位置:" . $_FILES["file"]["tmp_name"] . "<br>"; // 將文件存儲到指定目錄 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]); echo "文件存儲在: " . "upload/" . $_FILES["file"]["name"]; } } else { echo "無效的文件"; } ?>
以上代碼會將上傳的文件存儲到 upload 目錄下,并在頁面上顯示文件信息。
JQ 實現文件上傳
JQ 是一個流行的 JavaScript 庫,其通過 AJAX 來實現文件上傳。以下是一個簡單的 JQ 文件上傳代碼:
$("#uploadForm").submit(function() { var dataString = 'name=' + $('#name').val(); // 其他表單數據 var fileData = $('#file').prop('files')[0]; // 文件數據 var formData = new FormData(); formData.append('file', fileData); formData.append('dataString', dataString); $.ajax({ url: 'upload.php', data: formData, processData: false, contentType: false, type: 'POST', success: function(data) { alert(data); } }); return false; });
以上代碼使用了 FormData 和 AJAX 進行文件上傳。其中,formData.append() 方法用于添加文件和其他表單數據。processData 和 contentType 屬性設置為 false 代表不自動處理數據格式。
總結
PHP 和 JQ 都是實現文件上傳的常用工具,通過學習他們的使用方法,可以讓我們更好地開發網站。以上是一個簡單的文件上傳代碼示例,可以根據需要進行修改和優化。