一个完整的php上传功能 完整代码(upload代码)

创建一个文件上传表单

允许用户从表单上传文件是非常有用的。

创建上传脚本

"upload_file.php" 文件含有供上传文件的代码:

<?php
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"]; } ?>

通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。

第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。如下所示:

  • $_FILES["file"]["name"] - 上传文件的名称
  • $_FILES["file"]["type"] - 上传文件的类型
  • $_FILES["file"]["size"] - 上传文件的大小,以字节计
  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
  • $_FILES["file"]["error"] - 由文件上传导致的错误代码

这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关允许哪些用户上传文件的限制。


上传限制

在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif、.jpeg、.jpg、.png 文件,文件大小必须小于 200 kB:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // 获取文件后缀名 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 204800) // 小于 200 kb && 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>"

转载于:https://www.cnblogs.com/jiuxinkeji/p/11228593.html

好的,以下是 PHP 实现注册时选择头像的简单代码示例: 1. 在 HTML 表单中添加头像选择的 input: ```html <input type="file" name="avatar"> ``` 2. 在 PHP 后端处理上传头像的代码中,需要做以下步骤: ```php // 1. 首先判断是否选择了头像文件 if (!isset($_FILES['avatar']) || $_FILES['avatar']['error'] !== UPLOAD_ERR_OK) { // 头像上传出现错误 echo '头像上传失败,请重试'; exit; } // 2. 判断文件类型和大小是否符合要求 $allowed_types = ['image/png', 'image/jpeg', 'image/gif']; if (!in_array($_FILES['avatar']['type'], $allowed_types) || $_FILES['avatar']['size'] > 5 * 1024 * 1024) { // 头像文件不符合要求 echo '请选择符合要求的头像文件'; exit; } // 3. 生成新的文件名并保存头像文件 $new_file = '/path/to/save/' . uniqid('avatar_') . '.' . pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION); if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $new_file)) { // 头像文件保存出现错误 echo '头像上传失败,请重试'; exit; } // 4. 在用户表中保存头像文件的路径 $avatar_path = $new_file; $sql = "INSERT INTO users (name, email, password, avatar) VALUES (:name, :email, :password, :avatar)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':name', $_POST['name']); $stmt->bindParam(':email', $_POST['email']); // 假设密码是明文的,这里需要加密存储 $stmt->bindParam(':password', password_hash($_POST['password'], PASSWORD_DEFAULT)); $stmt->bindParam(':avatar', $avatar_path); $stmt->execute(); ``` 以上就是一个简单的 PHP 上传头像并保存到数据库的代码。当然,这里省略了许多边界情况的处理和安全性的考虑,实际情况中需要更为严谨的代码实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值