• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

这个上传代码,究竟有关问题出在哪里啊

php 搞代码 4年前 (2022-01-25) 17次浏览 已收录 0个评论

这个上传代码,究竟问题出在哪里啊???
这个上传代码,里面没有限制上传文件的大小,但是现在上传超过100K的就总无法上传,问题出在哪里啊?
我想弄限制,只能上传500K以内的文件,得如何改?

<?php

$allow_type=array(“m4r”,”jpg”);//允许上传的图片类型

$name=$_FILES[‘upImg’][‘name’]; //客户端文件的原名称

$upload_dir=”upload/”;//图片保存目录

//strtolower 将字符串转为小写

$file_suffix=strtolower(getFileSuffix($name));

if(!in_array($file_suffix,$allow_type))

{

//implode 把数组元素组合为字符串

$all_type=implode(“、”,$allow_type);

exit(“<script>alert(‘您只能上传 $all_type 格式的图片!’);history.back();</script>”);

}

//explode 把字符串分割为数组

$name_array=explode(“.”,$name);

do
{

$name_array[0]=randomFileName();

$name=implode(“.”,$name_array);

$upload_file=$upload_dir.$name;

}while(file_exists($upload_file));

$tmp_name=$_FILES[‘upImg’][‘tmp_name’];

//is_uploaded_file 判断文件是否是通过HTTP POST上传的

if(is_uploaded_file($tmp_name))

{

//move_uploaded_file 将上传文件移至指定目录

if(move_uploaded_file($tmp_name,$upload_file))

{

echo “$upload_file 歌曲上传成功!”;
exit(“<script>top.document.getElementById(‘url’).value=’$upload_file’;</script>”);

}

}
//获取文件后缀名

function getFileSuffix($fileName)

{

//strrchr 返回.在$fileName中最后出现的位置到结尾的所有字符。substr 再去掉’.’

return substr(strrchr($fileName, ‘.’), 1);

}

//生成随机文件名

function randomFileName()

{

//将时区调为北京时间,php5默认为格林威治标准时间

date_default_timezone_set(“PRC”);

return date(‘YmdHis’).rand(100,999);

}

?>

——解决方案——————–
1、超过100K的文件无法上传,请看一下$_FILES[‘upImg’][‘error’]的值,可能有以下几种情况:
值为1,表示文件大小超过了php.ini中定义的upload_max_filesize;
值为2,表示文件大小超过了HTML中的限来&源gao@dai!ma.com搞$代^码%网搞gaodaima代码制。HTML中可以通过以下代码限制文件大小:

HTML code


------解决方案--------------------
在PHP内判断也可以!
if($_FILES['upImg']['size']>1024*500)
{
echo "文件超过了500k,无发上传!";
exit;
}
至于无法上传,我个人估计是:
do
{

$name_array[0]=randomFileName();

$name=implode(".",$name_array);

$upload_file=$upload_dir.$name;

}while(file_exists($upload_file));
文件存在才将$upload_file=$upload_dir.$name;事实该文件在第一次的时候肯定不存在,那这个do里的代码根本不执行,也就是说:$upload_file不能真实反映其文件路径,那么在后面move_uploaded_file的时候也就无法执行了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:这个上传代码,究竟有关问题出在哪里啊

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址