php实现网页常见文件上传功能_php实例

来源:脚本之家  责任编辑:小易  

后端的主要逻辑顺序基本就是下面的流程获取文件上传数组 eg.$file=$_FILES['file'];获取实际文件名 eg.$old=$file['name'];获取扩展名 eg.$ext=strrchr($old,'.');定义一个新文件名(存储的时候不用源文件名,主要是因为可能出现中文以及文件名重复问题)eg.$new=time().uniqid();项目文件系统根目录$file_path='/var/www/ccc/';定义一个存储路径(相对系统根目录)eg.$storage="file/;移动文件 eg.move_uploaded_file($file['tmp_file'],$file_path.$storage.$new.$ext)数据库存储你需要记录的信息,比如原文件名、上传时间、路径,你可以存储$storage这个相对路径,因为以后访问,可能需要使用web域名。不过现在一般也不会让人直接访问静态资源,那么权限控制就是另外一回事了主要的流程就是这些,当然作为项目使用这些还是不够的,还需要异常处理,毕竟这样的流程还是太简陋www.zgxue.com防采集请勿采集本网。

用php实现网页常见的文件上传功能,供大家参考,具体内容如下

?php form_data=array(\"text1\"=>\"\",\"text2\"=>\"\");if($_POST){ foreach($form_data as$key=>$val){ form_data[$key]=isset($_POST[$key])?POST[$key]:$form_data[$key];} 表单处理 }

上传页面

所谓上传就是把文件从你电脑本地复制到你的项目指定文件夹下。但这有个中间过程,就是复制到系统指定的临时文件夹生成临时文件。然后将临时文件复制到你指定的文件夹下。剩下的就是各种验证了。

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><!--上传文件 enctype="multipart/form-data"指的是编码方式为上传多种类型文件和数据流--><form method="post" action="123.php" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"></form></body></html>

普通的页面访问全是同步的,就是 请求-而进度条需要的实时的数据,所以普通页面是实现不了这个功能的,得需要借助异步ajax周期获取进度数据,这个数据的来源当然就是服务器端发送的了,这样就遇到了一个

文件处理页面

!无标题文档 []\"> []\"id=\"fileField2\"> 全部上传\"> php 如果上传目录不存在则建立 取得上传域数组 取得上传个数 if($F['error'][$i]){/如果上传错误 保存上传的文件 } }

<?php/** * Created by fcc * User: Administrator * Date: 2017/10/31 * Time: 10:33 */var_dump($_FILES);//文件处理要实现的几点//1.是否有错误//2.文件类型是否符合要求//3.文件大小是否符合要求//4.文件名是否重复//$types = ['image/jpeg','image/png'];if (!$_FILES['file']['error']){ if ($_FILES['file']['type'] == 'image/jpeg'){ if ($_FILES['file']['size']<200000){//文件传到文件夹中,可以拼接时间戳,用户名等防止文件名重复 $file_name = "./upload/2017-10-31/".$_FILES['file']['name']; if (!file_exists($file_name)){ move_uploaded_file($_FILES['file']['tmp_name'],$file_name);// $filename=iconv("UTF-8","",$file_name); }else{ echo "文件名重复"; } }else{ echo "文件过大"; } }else{ echo "文件格式错误"; }}//实验过程中出现因为图片汉字命名报错!!!

进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl执行phpize生成编译文件!phpize在PHP安装目录的bin目录/usr/local/php5/bin/phpize运行时,

PHP 一般使用 POST 方法上传文件,下面是一个简单的文件上传示例,里面有相关的注释:up.htm 文件:html;charset=gb2312">Up Sample备注:表单中 enctype="multipart/form-data"的意思,是设置表单的 MIME 编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了 multipart/form-data,才能完整的传递文件数据,进行下面的操作,并且 method 要设置为"post"->File:br/>上传框要设置 type="file"->up.php 文件phpif(is_uploaded_file($_FILES["upfile"]["tmp_name"])){如果有文件上传is_uploaded_file-判断文件是否是通过 HTTP POST 上传的,返回布尔值FILES['upfilename']['.'],其中的 'upfilename' 即为上传框的 name 属性FILES['upfile']['tmp_name']-文件被上传后在服务端储存的临时文件名,一般是系统默认if!eregi('pdf',$_FILES['upfile']['type'])){我们这里假设你要上传一个 pdf 文件if!eregi('pdf',$_FILES['upfile']['type']))这个是判断上传文件类型的,是不是 pdf 文件,当然,若是想判断是否是 jpg 文件的话,将 pdf 改成 jpg 就可以了,即 if!eregi('jpg',$_FILES['upfile']['type']))FILES['upfile']['type']是文件的 MIME 类型,如果浏览器提供此信息的话。例如“image/gif”echo 'The uploaded file is not an pdf File!Please upload a right file!';}else{filename=$_FILES['upfile']['name'];filename=$_FILES['upfile']['name'],这里是指e5a48de588b6e799bee5baa6e79fa5e9819331333339663438定上传后的文件名,这里使用的仍是原来的文件名字,($_FILES['upfile']['name']是原始文件的名字)if(move_uploaded_file($_FILES["upfile"]["tmp_name"],dirname(_FILE_)."/upload_file/".$filename)){这里就是上传文件dirname(_FILE_)."/upload_file/".$file_name-指定上传的目标文件,假设你要上传的目标文件夹upload_file 是和当前文件(upload.php)在同一文件夹下chmod(dirname(_FILE_)."/upload_file/".$file_name,0444);上面注释掉的是用来改变上传后文件的属性,444 即只有执行和读的权限(看情况加上)echo$_FILES["upfile"]["name"]."uploaded succeed!}else{echo"Can't upload!}}}else{echo"File is not selected;}需要注意的:在你的 up.php 同级目录下建立 upload_file 文件夹,来存放上传的文件在上传之前要看一下 php 的配置文件:php.ini 中的三处设置1.是否允许文件上传:(file_uploads=On)2.文件上传的最大 size:(upload_max_filesize)3.post 的最大 size(post_max_size)这个大小设置成和 uplod_max_filesize 一样大或比 uplod_max_filesize 大这只是很简单的一个文件上传的例子,为了帮助理解,只是判断了一下上传文件的类型,还可以使用 if 语句来判断上传文件的大小($_FILES['upfile']['type'])),并进行提示控制等,相关可以查阅$_FILE['upfile']数组的各个值分别代表什么内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • php move_uploaded_file() 函数(将上传的文件移动到新位置)
  • php上传 找不到临时文件夹的解决方法
  • 详解python上传文件和字符到php服务器
  • php判断文件上传图片格式的实例详解
  • php大文件分割上传 php分片上传
  • php中tp5 上传文件的实例详解
  • php使用ftp实现文件上传与下载功能
  • 一个非常实用的php文件上传类
  • php大文件分片上传的实现方法
  • yii框架中搜索分页jquery写法详解
  • laravel框架实现的批量删除功能示例
  • 基于php读取txt文件向数据库导入海量数据的方法
  • 为百度ue编辑器上传图片添加水印功能
  • php 双链表(spldoublylinkedlist)简介和使用实例
  • thinkphp实现递归循环栏目并按照树形结构无限极输出的方法
  • 基于laravel实现的用户动态模块开发
  • php采集神器curl使用方法详解
  • 微信小程序 消息推送php服务器验证实例详解
  • php导出带样式的excel示例代码
  • 如何在php上实现文件上传功能
  • 如何实现文件上传功能php后端
  • 关于php实现文件上传
  • php上传功能怎么实现点击浏览在打开文件之后直接上传?
  • html表单实现文件上传,通过php处理后怎么在原来html中显示文件信息?
  • php如何实现文件上传
  • php 文件上传,如何实现进度条功能?
  • php实现多文件上传
  • 移动端网页如何使用JqueryMobile+PHP实现上传图片的功能
  • php代码 网站编程 实现上传和下载多个不同类型文件功能
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php move_uploaded_file() 函数(将上传的文件移动到新位置)php上传 找不到临时文件夹的解决方法详解python上传文件和字符到php服务器php判断文件上传图片格式的实例详解php大文件分割上传 php分片上传php中tp5 上传文件的实例详解php使用ftp实现文件上传与下载功能一个非常实用的php文件上传类php大文件分片上传的实现方法yii框架中搜索分页jquery写法详解laravel框架实现的批量删除功能示例基于php读取txt文件向数据库导入海量数据的方法为百度ue编辑器上传图片添加水印功能php 双链表(spldoublylinkedlist)简介和使用实例thinkphp实现递归循环栏目并按照树形结构无限极输出的方法基于laravel实现的用户动态模块开发php采集神器curl使用方法详解微信小程序 消息推送php服务器验证实例详解php导出带样式的excel示例代码php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实ci框架出现mysql数据库连接资源无法释放的php while循环控制的简单实例33道php常见面试题及答案laravel-admin 实现给grid的列添加行数序使用array_map简单搞定php删除文件、删除实例讲解php实现多线程php的mvc模式实现原理分析(一相简单的mvlnmp部署laravel以及xhprof安装使用教程php时间戳格式化显示友好的时间函数分享利用 fsockopen() 函数开放端口扫描器的实
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved