PHP 中的上传文件问题

Upload file trouble in PHP

我之前上传过几次图片,从来没有遇到过问题。我只是复制脚本并且它运行良好,但在我复制之后我不知道为什么它一直显示我没有使用正确的扩展名。你能找出错误吗?

这是表单脚本:

<tr height="30">
        <td>&nbsp;</td>
        <td align="right">Gambar Barang &nbsp;&nbsp;&nbsp;</td>
        <td><input type="file" name="gambar" /></td>
</tr>

及其动作,

$errors= array();
$uploaddir = 'images/';
$uploadfile = $uploaddir . basename($_FILES['gambar']['name']);
$gambar      = $_FILES['gambar']['name'];
$gambar_size     = $_FILES['gambar']['size'];
$gambar_type     = $_FILES['gambar']['type'];
$gambar_tmp      = $_FILES['gambar']['tmp_name'];
$gambar_ext=strtolower(end(explode('.',$_FILES['gambar']['name'])));

 $expensions= array("jpeg","jpg","png");

  if(in_array($gambar_ext,$expensions)=== false){
     $errors[]="extension not allowed, please choose a JPEG or PNG file.";
  }

  if($gambar_size > 4097152){
     $errors[]='File size must be excately 4 MB';
  }

  if(empty($errors)==true){
     copy($_FILES['gambar']['tmp_name'], $uploadfile);

  }else{
     print_r($errors);
  }

有几种情况可能导致文件上传失败:

  • 上传表单是否有enctype="multipart/form-data"?
  • file_uploads = 在 php.ini 中打开了吗?
  • php.ini 的最大 post/upload 限制是多少?
  • 您检查上传文件夹的权限了吗?

您的代码工作正常,只需确保您的表单使用:

方法='post'

and(正如 Reto 已经提到的)- enctype="multipart/form-data"

即类似于:

<form method='post' action='#' enctype='multipart/form-data'>