最近在搞一个Php文件上传,遇到了个怪怪的问题,我把上传时的那个临时文件夹删了,我主动删的,但我用程序判断时,居然没报错,反而提示上传成功;
临时文件夹都删了,怎么会成功,部份代码如下:if(is_uploaded_file($file)){         echo "<script>alert('是合法上传文件')</script>";}else{
        if($_FILES['myFile']['error']==6){      echo "<script>alert('找不到临时文件夹')</script>"; }
}is_uploaded_file()不就是判断是否是通过Http POST 提交的吗,并且判断文件是否上传到临时文件吗,那程序执行结果怎么会是“是合法上传文件'”呢,搞不懂!

解决方案 »

  1.   

     if($_FILES['myFile']['error']==6)  6的错误 是 文件写入到临时文件夹出错 你删除的是临时文件不是文件夹,所以这个错误返回肯定不是6,同时你虽然删除了临时文件,但if(is_uploaded_file($file))这句子的返回还是真的。
      

  2.   

    如果你没有改变 php.ini 中的 upload_tmp_dir
    那么 php 在处理上传时将上传的文件缓存在系统的临时文件夹中。而这个文件夹是不会没有的,如果你删除了他,系统会自行创建
      

  3.   


    我的配置是这样的:
    upload_tmp_dir = 'f:/wamp/tmp' 上传文件存放的临时目录
    然后,我就把tmp这个临时文件夹主动的删了,系统也没有自行创建啊
      

  4.   

    上传时你看一下 tmp_name 就知道了
    echo $_FILES['myFile']['tmp_name'];没有 upload_tmp_dir 指定的目录时,临时文件存放在系统的临时文件夹中
      

  5.   

    当然不是啦,有的 c:\windows\temp 禁止 php运行权限写入 这样就上传不成功了