When using a form to upload files, the submission method of the form must be post submission. The value of the input control type attribute of the uploaded file should be file. The most important thing is that the form tag needs to add an enctype="multipart/form -data" attribute.
html code:
[html] view plain copy <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传</title> </head> <body> <form action="handle.php" method="post" enctype="multipart/form-data"> <input type="file" name="file1"> <br/> <input type="submit" value="上传"> </form> </body> </html>
php code:
[php] view plain copy[php] view plain copy <?php /* *用$_FILES接收通过表单上传的文件数据 *$_FILES['file1']中的file1对应表单中上传文件的input标签中的name值 *$_FILES['file1']返回的是一个数组: $_FILES['file1']['name'] 显示上传文件的原名称。 $_FILES['file1']['type'] 文件的 MIME 类型,例如"image/gif"、"image/png"。 $_FILES['file1']['size'] 已上传文件的大小,单位为字节。 $_FILES['file1']['tmp_name'] 储存的临时文件名和临时储存的路径。 $_FILES['file1']['error'] 和该文件上传相关的错误代码。 =0; 没有错误发生,文件上传成功。 =1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 =2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 =3; 文件只有部分被上传。 =4; 没有文件被上传。 =5; 上传文件大小为0. */ $file=$_FILES['file1']; //给文件重命名,尽量不要起中文名字,如下以时间戳+随机数重命名 $filename=time().rand(0,1000); //获取文件的后缀,pathinfo()会以数组的形式返回一个文件的路径信息,其中extension元素则是文件的后缀名 $ext=pathinfo($_FILES['file1']['name'])['extension']; //最终文件名为 $filename=$filename.'.'.$ext; //设置文件上传到服务器后存放的位置,move_uploaded_file()会将文件移动到新位置,第一个参数是要移动的文件,第二个参数是移动到哪里。我在这里是放到和本php文件同一目录下,注意需要将新的文件名连接进去。 if (move_uploaded_file($file['tmp_name'], './'.$filename)) { echo "success"; } else{ echo "error"; } ?>
Related recommendations:
## Various uploads of files, inseparable forms
#
The above is the detailed content of How to implement form upload file in php. For more information, please follow other related articles on the PHP Chinese website!