淘先锋技术网

首页 1 2 3 4 5 6 7

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