上传文件问题。。。 if(is_uploaded_file($_FILES['file']['tmp_name'])=>if(is_uploaded_file($_FILES['file']['tmp_name'])) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是有地方代码不对上传时间好长随后跳超时而且set_time_limit(0);之后就更长了 jakey9826的回答上正解,至于楼主说的很长时间。是这样的: do { $filename[0]="1"; $name=implode(".",$filename); $uploadfile=$uploaddir.$name; } while(file_exists($uploadfile));你这个部分写了一个无限循环(前提条件1.jpg是存在的),先执行语句在循环后,检查到存在1.jpg,然后继续执行do括号内的语句,但是$filename[0]依然是执行第一次循环起前的值,导致$filename[0]永远是1,当然接下来的$uploadfile也永远是1.jpg,即到while的检查部分也永远是存在,再永远的好像以上所讲的继续无限循环,导致超时才停止执行。这样写才对:$i=1; do { $filename[0]=$i++; $name=implode(".",$filename); $uploadfile=$uploaddir.$name; } while(file_exists($uploadfile)); 不好意思啊楼猪比较笨还有个问题搞不明白is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的我是自己在自己机器上传是不是就不算HTTP POST了?我运行之后的确是传上来了,也符合我的要求了但是他echo"上传失败!"那说明不是HTTP POST啦?那我这个还是写的不对咯?因为自己传自己机器的时候成功却显示失败有点不明白望指点 是属于HTTP POST 上传的,不关自己机器的是,只要是在浏览器上传的,都是POST的 那if(is_uploaded_file($_FILES['file']['tmp_name']))应该是执行 echo "<center>上传成功</center>"; echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>";这个的吗?为什么是执行了下面的 else?有点不明白,请指点 如果图片不是上传的话那就执行else了建议: if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) { if(is_uploaded_file($_FILES['file']['tmp_name'])) //move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)这个函数是将上传的图片复制下来!具体的来说你用的是不对的! { echo "<center>上传成功</center>"; echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>"; } else { echo "上传失败!"; } } 如下:if(is_uploaded_file($_FILES['file']['tmp_name'])) //先判断图片是由HTTP POST 传送的{ if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) //进行复制 { echo "<center>上传成功</center>"; echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>"; } else { echo "上传失败!"; }} 高分在线等会php,jsp将这个jsp页面转化成php的,谢谢 php静态地址 谁能告诉我为什么这行ob_start("ob_gzhandler")报错 请教一个正则表达式的编写? 求过滤html代码的正则表达式 怎么样用post方法得到地址栏里面的变量 请教怎样用php在浏览器中图形显示数据库中数据 像一些网站中的相关商品如何做啊?? sql语句 thinkphp 字段映射问题 请教现在php SOAP技术在大公司是否很常用?有什么技术优势? windows下如何把php文件保存为GBK格式的文件?
上传时间好长
随后跳超时
而且set_time_limit(0);之后就更长了
do
{
$filename[0]="1";
$name=implode(".",$filename);
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
你这个部分写了一个无限循环(前提条件1.jpg是存在的),先执行语句在循环后,检查到存在1.jpg,然后继续执行do括号内的语句,但是$filename[0]依然是执行第一次循环起前的值,导致$filename[0]永远是1,当然接下来的$uploadfile也永远是1.jpg,即到while的检查部分也永远是存在,再永远的好像以上所讲的继续无限循环,导致超时才停止执行。
这样写才对:$i=1;
do
{
$filename[0]=$i++;
$name=implode(".",$filename);
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
还有个问题搞不明白
is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的
我是自己在自己机器上传
是不是就不算HTTP POST了?
我运行之后的确是传上来了,也符合我的要求了
但是他echo"上传失败!"
那说明不是HTTP POST啦?
那我这个还是写的不对咯?因为自己传自己机器的时候成功却显示失败
有点不明白望指点
echo "<center>上传成功</center>";
echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>";
这个的吗?
为什么是执行了下面的 else?
有点不明白,请指点
else
了
建议:
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['file']['tmp_name'])) //move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)这个函数是将上传的图片复制下来!具体的来说你用的是不对的!
{
echo "<center>上传成功</center>";
echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>";
}
else
{
echo "上传失败!";
}
}
如下:
if(is_uploaded_file($_FILES['file']['tmp_name'])) //先判断图片是由HTTP POST 传送的
{
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile)) //进行复制
{
echo "<center>上传成功</center>";
echo "<br><center><a href='http://localhost/danci/atop.php'>点我返回</a></center>";
}
else
{
echo "上传失败!";
}
}