修改PHP上传文件大小限制的方法
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了金台免费建站欢迎大家使用!
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
$sql="insert into t_file(f_title,f_remark,f_file,f_upload_time) values('$title','$remark','$file',now())";
这里的now()是取当前时间么?没用过这个方法,貌似php手册里面也没有哦,不知道是不是你自定义的,如果不是的话,应该报错的,直接用time()吧。
echo print_r($_FILES["upfile"]);你输出的就是你上传的路径。就没有上传好不,表单传递过来的是你本地文件所在的路径,你的Error返回信息是0说明没有发生错误。1、FORM标签enctype属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,
这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
只有使用了multipart/form-data,才能完整的传递文件数据
form enctype="multipart/form-data" method="post" name="upform"
input标签 type 属性中的 "file"
input name="upfile" type="file"
2、$_FILES 系统函数
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error'] 该文件上传相关的错误代码。
3、move_uploaded_file函数
上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置和文件名);
4、is_uploaded_file 函数
判断上传MIME类型的文件函数利用php的文件函数来实现上传这段代码分为两个文件,一个为upload.html,一个是upload.php upload.html form enctype="multipart/form-data" action="upload.php" method="post" input type="hidden" name="max_file_size" value="100000" input name="userfile" type="file" input type="submit" value="上传文件" /form其中, 请注意form enctype="multipart/form-data"......这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。 值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。 MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。 upload.php $f=$HTTP_POST_FILES['Myfile'];$dest_dir='uploads';//设定上传目录$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复$r=move_uploaded_file($f['tmp_name'],$dest);chmod($dest, 0755);//设定上传的文件的属性或者?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名) $_FILES['userfile']['name'] 客户端机器文件的原名称。 $_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。 $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。 $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。 $_FILES['userfile']['error'] 和该文件上传相关的错误代码 值:0; 没有错误发生,文件上传成功。 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 值:3; 文件只有部分被上传。 值:4; 没有文件被上传。
我这能取出完整的值哦
可能是你的php.ini里的register_globals=off的原因吧,改成on就可以用旧的写法
造成这个问题的可能性有以下几点:
1.提交的表单里面需要有enctype="multipart/form-data"这个属性
2.大文件上传无值:修改php.ini更改上传文件的大小和php响应时间
3.自己print_r($_FILES);看看是否有数据,根据这个逻辑去查找问题!