为了账号安全,请及时绑定邮箱和手机立即绑定

文件不是通过HTTP POST方式上传来的!! 老师我也遇到这个问题,青帮我看看代码,谢谢!

<?php 
header("content-type:text/html;charset=utf-8");
//$_FILES
//print_r($_FILES);
$filename=$_FILES['myFile']['name'];
$type=$_FILES['myFile']['type'];
$tmp_name=$_FILES['myFile']['tmp_name'];
$error=$_FILES['myFile']['error'];
$size=$_FILES['myFile']['size'];
//判断下错误
if($error==UPLOAD_ERR_OK){ //或者用$error==0 也可以就是指没有错误
//需要判断一下文件是否是通过HTTP POST方式上传
//is_uploaded_file($filename);
$destination="uploads/".$filename;
if(is_uploaded_file($filename)){
if(move_uploaded_file($tmp_name, $destination)){
$mes="文件上传成功";
}else{
$mes="文件上传失败";
}
}else{
$mes="文件不是通过HTTP POST方式上传来的";
}
}else{
switch ($error){
case 1:
   $mes="超过了配置文件上传文件限定的大小";
   //UPLOAD_ERR_FORM_SIZE
   break;
case 2:
$mes="超过表单设置上传文件限制大小";
//UPLOAD_ERR_FORM_SIZE
   break;
case 3:
$mes="文件部分被上传";
//UPLOAD_ERR_PARTIAL
break;
case 4:
$mes="没有选择上传文件";//UPLOAD_ERR_NO_FILE
break;
case 6:
$mes="没有找到临时目录";//UPLOAD_ERR_NO_TMP_DIR
break;
case 7:
$mes="文件不可写";//UPLOAD_ERR_CANT_WRITE
break;
case 8:
$mes="由于PHP扩展程序中断了文件上传";//UPLOAD_ERR_EXTENSION
break;
}
}
echo $mes;
//服务器端进行的配置
//1》file_uploads = On,支持通过HTTP POST方式上传文件
//2》upload_tmp_dir = "d:/wamp/tmp" 临时文件保存目录
//3》upload_max_filesize = 2M 上传文件的最大大小
//4》post_max_size = 8M 表单以POST发送数据的最大值
//客户端进行配置
// <input type="hidden" name="MAX_FILE_SIZE" value="1024"/>

正在回答

3 回答

if(is_uploaded_file($filename))修改成if(!is_uploaded_file($filename))试试

0 回复 有任何疑惑可以回复我~
#1

游泳 提问者

非常感谢!通过你的指点,上传成功了
2014-12-22 回复 有任何疑惑可以回复我~

判断的是存在服务器上的临时文件,你判断错啦

^-^...

1 回复 有任何疑惑可以回复我~
#1

游泳 提问者

老师这个回复才是最佳答案!!感谢!
2014-12-27 回复 有任何疑惑可以回复我~

文件不是通过HTTP POST方式上传来的!! 老师我也遇到这个问题,青帮我看看代码,谢谢!

<?php

header("content-type:text/html;charset=utf-8");

//$_FILES

$filename = $_FILES['myFile']['name'];

$type = $_FILES['myFile']['type'];

$tmp_name = $_FILES['myFile']['tmp_name'];

$error = $_FILES['myFile']['error'];

$size = $_FILES['myFile']['size'];

//判断错误信息


if($error == UPLOAD_ERR_OK) {

    $destination = "uploads/".$filename;

    if(is_uploaded_file($tmp_name)) {

        if(move_uploaded_file($tmp_name, $destination)) {

            $mes = "文件上传成功!";

        }else {

            $mes = "文件移动失败!";

        }

    }else {

        $mes = "文件不是通过HTTP POST方式上传上来的";

    }

}else {

    switch ($error){

        case 1:

            $mes = "超过了配置文件上传大小";

            break;

        case 2:

            $mes = "超过了表单设置上传文件大小";

            break;

        case 3:

            $mes = "文件部分被上传";

            break;

        case 4:

            $mes = "没有文件上传";

            break;

        case 6:

            $mes = "没有找到临时目录";

            break;

        case 7:

            $mes = "文件不可写";

            break;

        case 8:

            $mes = "由于PHP扩展程序中断了文件上传";

            break;

    }


}

echo $mes;


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117285    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

文件不是通过HTTP POST方式上传来的!! 老师我也遇到这个问题,青帮我看看代码,谢谢!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信