【问题标题】:Uploading image into database, issue $_FILES is not working将图像上传到数据库,问题 $_FILES 不起作用
【发布时间】:2014-11-01 15:45:55
【问题描述】:

我正在尝试编写代码以将图像以及其他一些信息上传到我的 mysql 数据库。但我无法做到。 php 代码未输入“if (!empty($_FILES["uploadedimage"]["name"]))”语句。我不确定 $_FILES 是如何工作的。下面是我的文件输入标签的 html 代码,然后我也添加了我的 php 代码:

HTML:

    <form id="myForm" action="inventory.php" enctype="multipart/form-data" class="form-horizontal" method="post" >
<div class="form-group">
                                    <label for="confirm" class="col-sm-2 control-label">Image URL</label>
                                    <div class="col-sm-10">
                                        <input id="photo" name="uploadedimage" type="file" class="required">
                                    </div>
                                </div>

以下是PHP代码:

$item_code = $_POST['itemCode'];
$price = $_POST['price'];
$description = $_POST['description'];

function GetImageExtension($imagetype)
 {
   if(empty($imagetype)) return false;
   switch($imagetype)
   {
       case 'image/bmp': return '.bmp';
       case 'image/gif': return '.gif';
       case 'image/jpeg': return '.jpg';
       case 'image/png': return '.png';
       default: return false;
   }
 }


if (!empty($_FILES["uploadedimage"]["name"])) {

    echo "enter first if";

    $file_name=$_FILES["uploadedimage"]["name"];
    $temp_name=$_FILES["uploadedimage"]["tmp_name"];
    $imgtype=$_FILES["uploadedimage"]["type"];
    $ext= GetImageExtension($imgtype);
    //$imagename=date("d-m-Y")."-".time().$ext;
    $imagename = $item_code.$ext;
    $target_path = "images111/".$imagename;


    if(move_uploaded_file($temp_name, $target_path)) {

        $query_upload="INSERT into 'inventory' ('item_code', 'price', 'description', 'image') VALUES 
        ('$item_code', '$price', '$description', '".$target_path."')";

        mysql_query($query_upload) or die("error in $query_upload == ----> ".mysql_error());  

    }else{

       exit("Error While uploading image on the server");
    } 

} 
else
{
    echo "command did not work";
}

【问题讨论】:

  • !empty($_FILES) 就够了
  • 仍然 $_FILES["uploadedimage"]["name"] 给我未定义的索引错误,并且 if (!empty($_FILES)) 返回 FALSE

标签: php html file-upload


【解决方案1】:

你的$_FILE 是空的吗?

如果是这样,您的php.ini 是否配置正确以接受文件上传?您有几个必须正确配置的指令。

  1. file_uploads 相当明显。需要设置为 true 才能接受文件上传。
  2. upload_tmp_dir 是上传文件时用来存放文件的临时目录。必须可由任何运行 PHP 的用户写入。通常 PHP 会使用默认的系统临时目录。
  3. upload_max_filesize 是上传文件的最大大小。如果您的文件大于该文件,则不会被接受。
  4. post_max_size 设置允许发布数据的最大大小并影响文件上传。应设置为大于upload_max_filesize 的值
  5. memory_limit 设置允许脚本分配的最大内存量(以字节为单位),也会影响文件上传。一般来说,memory_limit 应该大于post_max_size

如果这些设置中的任何一个配置不正确,您可能会得到一个空的 $_FILES 数组。

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 1970-01-01
    • 2014-05-11
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2016-08-28
    相关资源
    最近更新 更多