欢迎访问宙启技术站
智能推送

利用PHP的文件上传函数实现图片上传

发布时间:2023-06-20 06:47:32

PHP是一种广泛使用的服务器端脚本语言,其拥有许多功能强大的函数。其中之一就是文件上传函数,它允许通过网页表单向服务器上传文件,包括图片、音频、视频等。

文件上传函数的使用需要以下步骤:

1. 创建html表单用于上传文件。在表单中使用<input type="file" name="upload">来定义上传的文件类型。

2. 在PHP中获取上传的文件。使用$_FILES全局变量获取上传文件的信息,包括文件名、类型、临时文件名以及文件大小等。

3. 判定上传文件类型和大小是否符合预期。可以使用PHP函数来限制上传文件尺寸和类型。

4. 将文件从临时文件夹移动到指定文件夹。使用move_uploaded_file函数将文件移动到目的文件夹。

5. 显示上传成功的提示信息,或者在上传失败时提供相应的错误提示。

下面是具体的实现:

先创建html表单:

<form action="upload.php" method="post" enctype="multipart/form-data">

  <input type="file" name="upload">

  <input type="submit" value="上传文件">

</form>

注意,通过设置enctype属性为multipart/form-data,才能实现文件上传功能。

在上传的页面upload.php中获取上传的文件:

$file = $_FILES['upload']; //获取上传文件的信息

可以通过print_r函数来查看$file的内容:

print_r($file);

将输出以下内容:

Array

(

    [name] => Example.jpg

    [type] => image/jpeg

    [tmp_name] => /tmp/phpx6ROjN

    [error] => 0

    [size] => 499785

)

接下来,我们可以对上传的文件进行判定:

$allowed_types = array('image/jpeg', 'image/png', 'image/gif'); //允许上传的文件类型

$max_size = 2000000; //最大上传文件大小,单位byte

if (!in_array($file['type'], $allowed_types)) {

  die('只允许上传jpg, png, gif类型的文件');

}

if ($file['size'] > $max_size) {

  die('上传文件太大');

}

如果文件类型或大小不符合预期,则通过die函数来停止运行并输出相应的错误提示。

接下来,将上传的文件从临时文件夹移动到指定文件夹:

$target_dir = "uploads/"; //上传目录,需要预先创建

$target_path = $target_dir . basename($file['name']); //目标文件路径

if (move_uploaded_file($file['tmp_name'], $target_path)) {

  echo '文件上传成功';

} else {

  echo '文件上传失败';

}

在上传文件成功时,我们输出“文件上传成功”,否则输出“文件上传失败”。

最后,完整的上传文件函数如下:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

  $file = $_FILES['upload'];

  $allowed_types = array('image/jpeg', 'image/png', 'image/gif');

  $max_size = 2000000;

  if (!in_array($file['type'], $allowed_types)) {

    die('只允许上传jpg, png, gif类型的文件');

  }

  if ($file['size'] > $max_size) {

    die('上传文件太大');

  }

  $target_dir = "uploads/";

  $target_path = $target_dir . basename($file['name']);

  if (move_uploaded_file($file['tmp_name'], $target_path)) {

    echo "文件上传成功";

  } else {

    echo "文件上传失败";

  }

}

以上便是利用PHP的文件上传函数实现图片上传的方法。需要注意的是,对于上传的文件要做好安全性检查,避免上传恶意文件引发安全问题。