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 都是实现文件上传的常用工具,通过学习他们的使用方法,可以让我们更好地开发网站。以上是一个简单的文件上传代码示例,可以根据需要进行修改和优化。