资讯专栏INFORMATION COLUMN

PHP文件的上传与下载

Flands / 3157人阅读

一、文件上传的html与PHP注意事项
1.form要设定enctype属性,method设置为post。enctype设置为multipart/form-data后,图片上传信息会被列入$_FILES超全局数组,而非$_POST,从而达到真正的上传目的
2.设定隐藏input:表示最大上传空间
3.PHP配置文件的设置:

二、单个文件上传
1.复制或移动上传文件:move_uploaded_file()
bool move_uploaded_file ( string $filename , string $destination )
2.判断错误

3.判断类型,通过扩展名数组来判断
4.判断大小
5.设置上传文件的随机文件名(安全性)



    
        
        
    
    
        
"; print_r($_POST); print_r($_FILES); echo "
";*/ if($_FILES["pic"]["error"]>0){ switch($_FILES["pic"]["error"]){ case 1: echo"图片大小超过upload_max_filesize
"; break; case 2: echo"图片大小超过隐藏表单的MAX_FILE_SIZE
"; break; case 3: echo"文件只被部分上传
"; break; case 4: echo"没有上传文件
"; break; case 6: echo"找不到临时文件夹
"; break; case 7: echo"写入文件失败
"; break; default: echo "发生未知错误
"; } } $extArr=explode(".",$_FILES["pic"]["name"]); $ext=array_pop($extArr); $arr=array("jpg","jpeg","png"); if(!in_array($ext,$arr)){ echo "上传类型不符
"; exit; } $maxSize=100000; if($_FILES["pic"]["size"]>$maxSize){ echo "文件超过规定大小
"; exit; } Date_default_timezone_set("PRC"); $proPath=$_FILES["pic"]["tmp_name"]; $newPath="./".date("ymdhis").rand(100,999).".".$ext; if(move_uploaded_file($proPath,$newPath)){ echo "上传成功
"; }else{ echo "上传失败
"; } ?>

二、多个文件上传
1.将上传按钮的name属性变为索引数组,以方便遍历
2.在上述单个文件实例外层套一个循环即可

";
    print_r($_POST);
    print_r($_FILES);    
    echo "
"; $num=count($_FILES["pic"]["name"]); for($i=0;$i<$num;$i++){ //判断错误 if($_FILES["pic"]["error"][$i]>0){ switch($_FILES["pic"]["error"]){ case 1: echo"图片大小超过upload_max_filesize
"; break; case 2: echo"图片大小超过隐藏表单的MAX_FILE_SIZE
"; break; case 3: echo"文件只被部分上传
"; break; case 4: echo"没有上传文件
"; break; case 6: echo"找不到临时文件夹
"; break; case 7: echo"写入文件失败
"; break; default: echo "发生未知错误
"; } continue; } //判断类型 $extArr=explode(".",$_FILES["pic"]["name"][$i]); $ext=array_pop($extArr); $arr=array("jpg","jpeg","png"); if(!in_array($ext,$arr)){ echo "上传类型不符
"; continue; } //判断大小 $maxSize=1000000; if($_FILES["pic"]["size"][$i]>$maxSize){ echo "文件超过规定大小
"; continue; } //设置随机文件名进行上传操作 Date_default_timezone_set("PRC"); $proPath=$_FILES["pic"]["tmp_name"][$i]; $newPath="./".date("ymdhis").rand(100,999).".".$ext; if(move_uploaded_file($proPath,$newPath)){ echo "上传{$_FILES["pic"]["name"][$i]}成功
"; }else{ echo "上传失败
"; } } ?>

三、文件上传类
1.参考细说PHP文件上传类,进行使用
四、文件下载
1.a标签href属性设置为下载地址
2.http头信息改为附件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25719.html

相关文章

  • php实现图片上传下载

    摘要:本文接下来的内容讲的是如何通过实现图片的上传与下载构建上传文件前端页面这里我借助前端框架以及图标库,内容很简单就一个图片上传框以及一个提交按钮,代码如下上传图片上传其中隐藏域主要是用来现在文件上传大小的,设置为设置接收 本文接下来的内容讲的是如何通过php实现图片的上传与下载 构建上传文件前端页面 这里我借助bootstrap前端框架以及fontawesome图标库,内容很简单就一个...

    zhoutk 评论0 收藏0
  • 开箱即用-简洁实用ImgURL图床相册程序和Zdir目录列表程序(文件管理器)

    摘要:本篇文章就来分享一下两款开箱即用上手容易的图床相册程序和在线文件管理器目录列表程序,由好友开发并维护,非常适合个人站长用作图床相册和文件下载分享。虽然说现在照片还有文件存储等都可以上传到网盘中,但是国内的网盘与国外的网盘存储还有点不一样。以百度网盘与Dropbox对比为例,百度网盘顶多算是一个个人用来存放私人照片和文件的网络硬盘,如果用来分享的话很容易被百度限制或者取消下载。很多的个人站长为...

    番茄西红柿 评论0 收藏2637
  • 【视频点播最佳实践】使用OSS SDK上传视频到点播

    摘要:确认已准备了阿里云账号,并授予了上传权限。为了扶持更多创业者,降低入行门槛,视频点播已在原有的视频点播服务五个套餐包基础上,推出了超值体验套餐包。另外,体验完成后,阿里云也为提供了五个点播套餐包,供各种需求用户选择。 摘要: 场景 点播上传SDK缺乏需要的语言版本(如C/C++、Go等)或相应的功能(如网络流上传、追加上传),可以直接使用OSS的SDK进行上传。 准备工作 确认已开通点...

    printempw 评论0 收藏0
  • Phpcmsv9本地视频转码字段

    摘要:原文链接本地视频转码字段近几个月接了不少视频网站的单子,客户都要求能够上传本地视频并自动转码,而且需要兼容手机端进行播放。字段类型选择本地视频,字段名可以任意填写,比如。 原文链接:http://www.fire-rain.com/blog/localvideo Phpcmsv9本地视频转码字段 近几个月接了不少视频网站的单子,客户都要求能够上传本地视频并自动转码,而且需要兼容手机...

    Charles 评论0 收藏0
  • 七牛云存储官方接口PHP版本

    摘要:基于七牛云存储官方构建。使用此构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。应用接入获取和要接入七牛云存储,您需要拥有一对有效的和用来进行签名认证。文件下载七牛云存储上的资源下载分为公有资源下载和私有资源下载。 此 SDK 适用于 PHP 5.1.0 及其以上版本。基于 七牛云存储官方API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方...

    wwq0327 评论0 收藏0

发表评论

0条评论

Flands

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<