PHP实现文件的上传
来源:互联网 发布:淘宝频现违规刀具 编辑:程序博客网 时间:2024/06/05 12:01
通过PHP将文件上传到服务器
1、先创建一个上传表单:index.php
<html><head><meta charset="utf-8"><title>PHP实现文件上传</title></head><body><form action="upload.php" method="post" enctype="multipart/form-data"><label for="file">文件名:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交"></form></body></html>
2、创建上传脚本
<?php// 允许上传的图片后缀$allowedExts = array("gif", "jpeg", "jpg", "png");$temp = explode(".", $_FILES["file"]["name"]);echo $_FILES["file"]["size"];$extension = end($temp); // 获取文件后缀名if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/jpg")|| ($_FILES["file"]["type"] == "image/pjpeg")|| ($_FILES["file"]["type"] == "image/x-png")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb&& in_array($extension, $allowedExts)){ if ($_FILES["file"]["error"] > 0) { echo "错误:: " . $_FILES["file"]["error"] . "<br>"; } else { echo "上传文件名: " . $_FILES["file"]["name"] . "<br>"; echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>"; // 判断当期目录下的 upload 目录是否存在该文件 // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else { // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "文件存储在: " . "upload/" . $_FILES["file"]["name"]; } }}else{ echo "非法的文件格式";}?>
3、另一种实现方法(上传头像为例,思想来自于最近的一个项目)
//实现文件(用户头像)的上传 if($_SESSION['user_id']==''){ //如果用户的ID为空,说明没有登录 //实现跳转的两种方式 header('Location:login.php'); //echo '<script>window.location.href='"login.php"'</script>'; } print_r($_FILES); $fileError=''; //错误类型 $allowedExit = array( //允许上传的文件格式 'jpg', 'png', 'gif', 'bmp', 'jpeg', ); if ($_FILES['face'] == '') { //上传文件为空 echo '没有上传';} else { if ($_FILES['face']['error'] == 0) { //错误代码为0,表示上传的文件没有错误 $ext = strtolower(pathinfo($_FILES['face']['name'],PATHINFO_EXTENSION)); //$ext 提取上传文件的后缀 //strtolower()函数将所有后缀转化为小写 //pathinfo() 函数以数组的形式返回文件路径的信息 //PATHINFO_DIRNAME - 只返回 dirname(路径) // PATHINFO_BASENAME - 只返回 basename(文件名) // PATHINFO_EXTENSION - 只返回 extension(后缀) //eg.<?php //print_r(pathinfo("/testweb/test.txt",PATHINFO_BASENAME)); //输出:test.txt print_r($ext); if (!in_array($ext,$allowExtArray)) { $fileError .= '上传格式不被允许'; }else { if (!is_dir('uploads')) { //判断uploads文件夹是否存在 mkdir('uploads'); //创建uploads文件夹 } $newFileName = date('Y-m-d H:i:s',time()).rand(0,100000);//给上传的文件改名字 以时间为格式 仿制同一时间传 后面加一个随机数 move_uploaded_file($_FILES['face']['tmp_name'],'uploads/'.$newFileName.'.'.$ext); //move_uploaded_file() 函数将上传的文件移动到新位置 将要上传的文件保存到uploads文件夹下 } } else { switch ($_FILES['face']['error']) { //如果上传的文件有错误进行报错 case '1': $fileError = '上传文件大小超过服务器允许上传的最大值'; break; case '2': $fileError = '上传文件大小超过HTML表单中隐藏域MAX_FILE_SIZE选项指定的值'; break; // 0——没有错误发生,文件上传成功。 // 1——上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 // 2——上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 // 3——文件只有部分被上传。 // 4——没有文件被上传。 } echo '发生错误:'.$fileError; }}print_r($_SESSION);
阅读全文
1 0
- PHP实现文件的上传
- PHP上传文件的实现
- PHP实现文件的上传
- PHP实现文件上传
- 实现php文件上传
- PHP上传文件实现
- php实现文件上传
- [php] 实现文件上传
- PHP实现文件上传
- php实现文件上传
- PHP实现文件上传
- PHP-实现文件上传
- PHP 实现文件上传
- php实现文件上传
- php实现文件上传的一些经验
- PHP文件上传实现的注意点
- php实现文件上传的一些经验
- PHP文件上传的原理及实现
- 百练noi 16:矩阵剪刀石头布
- QT_opengl_gluPerspective没有定义的处理方法
- 文学的理由
- [编程题] 循环单词
- CVPR 2017 目标跟踪相关项目
- PHP实现文件的上传
- errno详解(转)
- 马士兵Servlet&JSP(2.JSP)源代码
- 数据结构—单链表
- 视频播放
- 移动了QT的项目,但是QT 的xxx-build-desktop仍然在原文件夹下,如何解决?
- Vmware CentOS7联网设置
- bacnet ip转MQTT
- 使用Spring、Hibernate、Struts的一些错误总结(不断补充)