加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP复制或移动上传文件 – 没有任何反应,但没有错误

发布时间:2020-12-13 21:43:04 所属栏目:PHP教程 来源:网络整理
导读:我没有收到任何错误,但我没有复制文件: $upload_folder = "uploads/";$name_of_uploaded_file = basename($_FILES['uploaded_file']['name']);$prefix = date("YmdHis");$path_of_uploaded_file = "$upload_folder$prefix-$name_of_uploaded_file";$tmp_pat
我没有收到任何错误,但我没有复制文件:

$upload_folder = "uploads/";

$name_of_uploaded_file = basename($_FILES['uploaded_file']['name']);

$prefix = date("YmdHis");
$path_of_uploaded_file = "$upload_folder$prefix-$name_of_uploaded_file";
$tmp_path = $_FILES["uploaded_file"]["tmp_name"];

if(is_uploaded_file($tmp_path))
{
  if(!copy($tmp_path,$path_of_uploaded_file))
  {
    $errors .= 'n error while copying the uploaded file';
  }
}

echo $path_of_uploaded_file;
echo $name_of_uploaded_file;
echo $errors;

这在Windows开发环境中运行良好,但部署到Linux Web服务器就是这样做的.我们最初收到了复制错误,然后我们向uploads目录添加了权限.现在我们一无所获.

我也尝试使用move_uploaded_file,没有错误,但在uploads目录中没有生成的文件.

解决方法

如果is_uploaded_file返回true,也许可以添加一个检查.

if(is_uploaded_file($tmp_path))
{
  if(!copy($tmp_path,$path_of_uploaded_file))
  {
    $errors .= 'n error while copying the uploaded file';
  }
} else {
    $errors .= 'n error while uploading file'; // maybe  upload_max_filesize exceeded
// try to get the specific error

 switch($_FILES['uploaded_file']['error']){
    case 0: //no error; possible file attack!
      echo "There was a problem with your upload.";
      break;
    case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
      echo "The file you are trying to upload is too big.";
      break;
    case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
      echo "The file you are trying to upload is too big.";
      break;
    case 3: //uploaded file was only partially uploaded
      echo "The file you are trying upload was only partially uploaded.";
      break;
    case 4: //no file was uploaded
      echo "You must select an image for upload.";
      break;
    default: //a default error,just in case!  :)
      echo "There was a problem with your upload.";
      break;

}

也许你的upload_max_filesize超出了,或者有另一个不允许上传的服务器设置.

有关可能出现的问题的更多信息,请参阅php dokumentation.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读