文件上传
如何上传文件??
-----------------------------------------------主页面-----------------------------------------------
<title>无标题文档</title>
</head>
<body>
<form action="chuli.php" method="post" enctype="multipart/form-data"><!--如果这个表单用来上传文件的,需要加额外的一个属性:enctype="multipart/form-data"提交数据的类型,是一个文件数据-->
<input type="file" /><!--这个标签可以用来选择文件-->
<!--文件的上传就是给予这个标签来实现的-->
<!--通过这个标签选完文件,要把这个文件,可以提交到另一个页面来实现-->
<!--<input type="file" />他是一个表单元素。只要是表单元素,就可以进行提交。把它提交到另外一个页面来处理-->
<!--上传文件就是依据,表单的提交功能,来实现。-->
<input type="submit" value="上传" /><!--上传文件需要借助表单提交来完成-->
<!--选择文件是选取的客户端的文件,哪个电脑用就选取那个电脑的文件。当点击上传提交到另外一个页面叫处理页面来处理,处理页面只有php代码,他只要包含PHP代码就要通过服务器的Php来处理,所以就相当于从客户端把文件拿到了服务端去处理这样就可以完成一个文件,从客户端转移到服务端这样一个过程。-->
</form>
</body>
</html>
----------------------------------------------处理页面----------------------------------------------
<?php
//提交了一个文件过来,而且name="file,文件选择的表单name叫"file,
//在处理页面怎样把传过来的值取到
//如果你是上传文件提交过来的,要从$_FILES数组来取
var_dump($_FILES);
显示的结果:
是一个二维数组
file代表提交表单的name值,又包含了一个数组这个数组里面才包含了上传文件的信息
name上传的文件名
type上传的类型
tmp_name文件临时存储的路径,也就是说把文件从客户端拿到服务端之后这个文件先预先存储一个位置,把这个文件保存在来了,保存在服务端了,如果不保存,这程序执行完就删掉了,这就是一个临时文件
error 出错信息
size上传文件的大小 int 2786这个是以字节为单位的
它是存在$_FILES数组里的
var_dump($_FILES["file"]);//可以取到上传的信息
打到处理页面,这个文件临时存在了服务器了,不是在客户端了,临时存在了F:\PHP1\wamp\tmp\php8C5C.tmp这个位置上,现在要把这个文件怎样完成一个文件上传,就是把这个临时文件保存下了,指定一个目录保存下来(存在目录里),这样就完成了上传。
但是,在上传的过成中,需要进行那些处理呢??
第一,不是所有的文件都能上传,要控制一下上传文件的类型,比如只能是图片,只能是word文档,只能是表格不能让用户随便上传,不能上传php文件,不能上传ese文件,不能上传关于页面的其他文件。会用到:‘type‘ => string ‘image/png‘
第二,要控制,上传文件的大小。不能让用户上传太大的文件,因为这个空间是有限的,如果每个用户都上传大文件,空间就马上满了,满了就不行了。
上传一张头像的话就是几十K,,,100k就很大了。 会用到:‘size‘ => int 4173
瞒足这些条件,在把临时文件保存时,需要这个目录:‘tmp_name‘ => string ‘F:\PHP1\wamp\tmp\php73ED.tmp‘需要这个目录找到这个文件,找到文件之后要存在另外一个目录里面
要存储文件名的话name 也需要 ‘name‘ => string ‘代码图片.png‘