实例:使用PHP将图片上传至服务器

2018-06-11  本文已影响42人  z1挂东南

2018.06.11,注意时间
.
.
.
本次介绍的实例是上传图片到服务器上,需要用到两个文件:第一个是提交表单文件,选择想要提交的文件,点击按钮提交图片;第二个是接收文件,接收到提交的图片后将图片保存在服务器上指定的位置。

目录结构:

upfiles_img文件夹
├─upfiles1.php     提交图片文件
├─upfiles2.php     接收图片文件


upfiles1.php文件(客户端文件):

上传文件的前提条件(客户端):
1.必须有文件上传框(可以出现多个,有默认值的)
2.必须以POST方式提交
3.必须指定FORM数据提交的编码类型为多格式上传,enctype="multipart/form-data"

<?php
header('Content-Type:text/html; charset=utf-8');
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>文件上传表单</title>
</head>
<body>
    <form action="upfiles2.php" method="post" enctype="multipart/form-data">
        <p>用户名:<input type="text" name="username"/></p>
        <p>文件上传:<input type="file" name="upfile"/></p>
        <p><input type="submit" value="立即提交"/></p>
    </form>
</body>
</html>

upfiles2.php文件(服务器端文件):

上传文件的前提条件(服务器端):
1.接收文件上传的数据必须使用 $_FILES
    接收到的是文件的相关信息(文件名、类型、大小、临时文件名)
2.接收到文件以后必须迅速将文件从临时目录中保存到指定位置,否则代码执行结束,文件就自动删除。
    使用函数:move_upload_file(临时文件路径,保存到的目标路径);
3.如果文件类型不是我们想要的类型,怎么办?
    拒绝上传

<?php
header('Content-Type:text/html; charset=utf-8');
date_default_timezone_set('PRC'); //为date('YmdHis')函数设置默认时区

//接收数据
$username = $_POST['username'];
$upfile = $_FILES['upfile'];

//生成文件名
$file_name = date('YmdHis').rand(100,999); //生成文件名,格式:年月日时分秒随机数
$ext = strrchr($upfile['name'], '.'); //通过文件名获取扩展名
$file_name = $file_name.$ext; //生成完整文件名,保存到数据库中

//检查文件类型,决定是否允许上传
if($ext!='.jpg' && $ext!='.png' && $ext!='gif'){
    echo '文件类型不允许上传!';
    exit;
}else{
    move_uploaded_file($upfile['tmp_name'], './files/'.$file_name);  //将上传的文件保存到服务器上指定的位置
    echo '文件上传成功!<a href="./upfiles1_img.php">回到首页</a>';
    echo '<br/>';
}
//提示:文件上传以后,文件是以独立文件形式保存的(保存在服务器的硬盘上),数据库中只保存文件名

以上代码都是运行成功后才贴的,如果有错误可能是复制粘贴出现失误,欢迎指正。——佛系程序员

上一篇 下一篇

猜你喜欢

热点阅读