php - 上传过程不在数据库中保存正确的名称

标签 php html mysql forms

我在 php 中有一个代码,验证正常,但我的问题是,当我尝试保存在数据库中时,我得到了这样的东西:

img_id   img_small           img_big           
  5      /tmp/phpdlYkiG      /tmp/phph3dhka

我不知道为什么 php 保存那个名字,因为图像有不同的名字,比如 koala.jpg 和 horse.jpg

这是我的代码,以查看是否有人有任何建议...

<form enctype="multipart/form-data" action="upload_type_1.php" method="POST" >        
  <input type="file" name="img_small_1" id="img_small_1">
  <input type="file" name="img_big_1" id="img_big_1">

  <input type="submit" value="Upload" name="submit">                                   
</form>

这是我的 PHP 代码:

if ( (move_uploaded_file($_FILES["img_small_1"]["tmp_name"], $target)) && (move_uploaded_file($_FILES["img_big_1"]["tmp_name"], $target2)) ){
    $img_title_1 = $_POST['img_title_1'];

    $sql = "INSERT INTO press (img_title, img_small, img_big) VALUES ('$img_title_1', '$img_small_1', '$img_big_1')";

    $retval = mysql_query( $sql, $conn );

    if(!$retval) {
      die('Could not enter data: ' . mysql_error());
    }

    mysql_close($conn);

    echo "Your files has been uploaded";        

} else {

    echo "Sorry, there was an error uploading your files."; 

    exit;
}

此代码可以正常工作,唯一的问题是将奇怪的名称保存到数据库中,我需要使用该名称...

谢谢! - 等待帮助!

最佳答案

您的问题可能不在您显示的代码中,而是在您未显示的代码中,这是您对 $img_small_1 && $img_big_1 的变量声明。假设你有

$img_small_1 = $_FILES["img_small_1"]["tmp_name"];
$img_big_1 = $_FILES["img_big_1"]["tmp_name"];

但你想要/需要

$img_small_1 = $_FILES["img_small_1"]["name"];
$img_big_1 = $_FILES["img_big_1"]["name"];

关于php - 上传过程不在数据库中保存正确的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30128152/

相关文章:

php - 刷新 Woocommerce 中购物车事件的自定义组件

javascript - 如何在php中调用使用默认参数的函数?

php - 多次上传php脚本并存入mysql数据库

javascript - 用多个自定义图像替换表单元素

javascript - 使用history.back click获取查询字符串

sql - 如何比较两个相同表中的行并返回缺失行的结果集?

php - Wordpress - 在管理选项页面中提交表单时将值保存到数组

html - 边框未排成一圈

sql - Compojure + clojure.contrib.sql : SELECT query is being cached. 为什么?

php - 如何使 php 变量等于 mysql_fetch_array 的结果?