PHP 文件上传

Posted 江南渔雾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 文件上传相关的知识,希望对你有一定的参考价值。

      文件上传的总体思路是:首先判断文件格式和大小是否符合要求,其次判断文件名是否相同,在这中间我们还需要根据编码格式的差异设置文件的编码格式,当文件的格式、大小、文件名不同时,才能够允许文件保存到相应的目录下

在利用php进行文件上传时,我们需要先建立一个form表单,利用form表单向服务器传送相关书据,代码如下:

<form action="chuli.php" method="post" enctype="multipart/form-data"> //在这里。form表单是用来上传文件的,因此我们需要增加一个额外的属性:enctype.enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。在这里我们进行的是文件的上传,所以我们选用multipart/form-data
    <input type="file" name="file" /> //在input标签里,我们之前在连接数据库,对数据库进行操作时,我们对type属性进行设置,可以实现不同的功能,比如文本框、密码框、文本域等等。在这里,我们将type属性设置为file,以便进行文件上传
    <input type="submit" value="上传" />
</form>

  在前台的上传操作制作完毕后,我们需要提交到后台进行处理,例如判断要上传的文件是否存在,是否是系统支持的文件格式,遇到文件重名是怎么办等等,代码如下:

<?php
var_dump($_FILES["file"]);//在之前的练习中,我们使用最多的是用POST方法来获取数据,但是在这里,我们用FILES。在这里,我们可以用var_dump($_FILES["file"])来查看要上传文件的一些信息,比如文件大小、文件格式、文件名等
//总体上讲,在进行文件上传时,我们需要特别注意以下4个问题: //1.控制上传文件的类型和大小 //2.如果文件名重复出现覆盖 //3.减少文件重名的概率 修改文件名 建文件夹 //4.关于中文乱码问题 if(($_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/png") && $_FILES["file"]["size"]<=102400) {//我们根据$_Files["file"]数组来取得文件数据后,判断文件类型是否符合要求,至于关于文件格式的写法,我们前面已经获取到,所以具体的判断条件的写法如上面代码 //上传操作 //造一个存储路径 $yuan = $_FILES["file"]["tmp_name"];//我们之前在用var_dump($_FILES["file"])//查看文件的各项信息时,我们看到有一个tmp_name,这里面显示的是在文件上传过程中,文件的临时存储路径 $filename = "./img/".date("YmdHis").$_FILES["file"]["name"];//为了防止重名,我们给文件名加上一个时间戳,精确到秒。 //将存储路径的编码格式变为国标 $filename = iconv("UTF-8","gb2312",$filename);//在设置文件的编码格式时,要用到iconv函数,从左到右它需要三个参数,分别表示:文件当前的编码格式、转换后的编码格式、文件名,这三者之间用逗号隔开 //判断文件是否存在 if(file_exists($filename))//file_exists用于检查文件或者目录是否存在 { die("文件已存在"); } //移动文件 move_uploaded_file($yuan,$filename);
//当文件符合设定的各项要求后,将会从练市存储路径转移到设定好的存储目录下,在这一过程中,需用到move_uploaded_file函数,它有两个参数:上传文件的文件名,要移动到的位置 } else { echo "上传的文件不符合要求"; } ?>

  

以上是关于PHP 文件上传的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 PHP,预期文件结尾,我错在哪里?

android的自带的httpClient 怎么上传文件

PHP常用代码片段

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

PHP文件上传代码用法

php文件上传漏洞代码只允许上传图片