【问题标题】:Uploaded Image file extension not getting stored in database上传的图像文件扩展名未存储在数据库中
【发布时间】:2015-08-19 19:15:32
【问题描述】:

我正在尝试将图像上传到目录并在数据库中添加路径。 当我填写表格并单击提交时,图像被上传到目录但文件扩展名没有保存在数据库中。

例如,如果我按名称 mobile-image-small-1.png 上传图片,则数据库中的文件名将只是 mobile-image-small-1,这会导致图片无法显示在网页上。这是什么问题

我正在使用mysql数据库

这是我的 php 代码

// Escape user inputs for security
$product_name = mysqli_real_escape_string($link, $_POST['product_name']);
$product_category = mysqli_real_escape_string($link, $_POST['product_category']);
$product_price = mysqli_real_escape_string($link, $_POST['product_price']);
$pro_url = mysqli_real_escape_string($link, $_POST['pro_url']);
$co_owners = mysqli_real_escape_string($link, $_POST['co_owners']);
// attempt insert query execution
// close connection

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
if($_POST)
{ 
if($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
if(file_exists("uploaded_images/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
if(move_uploaded_file($_FILES["file"]["tmp_name"],"uploaded_images/" . $_FILES["file"]["name"]))
{
$sql = "INSERT INTO product_list (product_name, product_category, product_price,product_referrence_URL,product_co_owners,product_image_url) VALUES ('$product_name', '$product_category', '$product_price', '$pro_url', '$co_owners', 'files/uploaded_images/".$_FILES['file']['name']."')";
if(mysqli_query($link, $sql)){
    header("Location: ../index.php");   
}else{
 echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
if(mysqli_query($sql))
{
echo "Stored in: " . "uploaded_images/" . $_FILES["file"]["name"];
}
else
{
echo 'Unable to store';
}
}
}
}
}
mysqli_close($link);
?>

这是我的表格

<form class="form-horizontal" method="post" action="files/insert.php" role="form" enctype="multipart/form-data">
              <div class="form-group">
                <label class="control-label col-sm-2" for="product_name">Product Name</label>
                <div class="col-sm-10">
                  <input type="text" class="form-control" name="product_name" id="product_name" placeholder="Iphone 5c" required>
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="pwd">Product Category</label>
                <div class="col-sm-10">                            
                  <select class="btn-btn-primary form-control" name="product_category">
                    <option>Mobile</option>
                    <option>Television</option>
                    <option>Printer</option>
                    <option>Watch</option>
                    <option>Monitor</option>
                  </select>
                </div>
              </div>

              <div class="form-group">
                <label class="control-label col-sm-2" for="product-pic">Upload your profile picture</label>
                <div class="col-sm-10">          
                  <input type="file" class="form-control" name="file" id="file" /> 
                </div>
              </div>


              <div class="form-group">
                <label class="control-label col-sm-2" for="product_price">Product Price</label>
                <div class="col-sm-10">
                  <input type="text" class="form-control" name="product_price" id="product_price" placeholder="Rs.36,000" required>
                </div>
              </div>


              <div class="form-group">
                <label class="control-label col-sm-2" for="pro_url">Reference URL</label>
                <div class="col-sm-10">
                  <input type="URL" class="form-control" name="pro_url" id="pro_url" placeholder="http://www.amazon.com" required>
                </div>
              </div>


              <div class="form-group">
                <label class="control-label col-sm-2" for="co_owners">Co-owners</label>
                <div class="col-sm-10">
                    <select class="btn-btn-primary form-control" name="co_owners">
                        <option>Select no. owners</option>
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                        <option>7</option>
                        <option>8</option>
                        <option>9</option>
                        <option>10</option>
                        <option>11</option>
                        <option>12</option>
                        <option>13</option>
                        <option>14</option>
                        <option>15</option>
                    </select>                      
                </div>
              </div>


              <div class="form-group">        
                <div class="col-sm-offset-2 col-sm-10">
                  <button type="submit" class="btn btn-success">Add product</button>
                </div>
              </div>
            </form>

【问题讨论】:

  • 您的数据库中length 和字段类型product_image_url 是什么???
  • @Saty 长度为 30,类型为 varchar
  • 将长度增加到100并尝试上传图片并检查!!!
  • @saty 谢谢... :) 上传..

标签: php mysql


【解决方案1】:

根据讨论,您的数据库 length is 30 and type is varchar 并且您的图像长度大于 30。这就是您将一半数据更新到数据库的原因。

因此,将列的长度增加到 100,它将长度 uo 增加到 100。

【讨论】:

    【解决方案2】:

    我觉得你可以使用type字段来获取这个值

     $_FILE['file']['type'] 
    

    查看文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多