PHP文件上传到mysql

标签 php mysql file-upload

我创建了一个表单,如下所示。我正在做的是

  1. 用户正在从下拉列表中选择客户端并上传文件。当他单击“添加”按钮时,页面将重定向到Confirm.php。

  2. Confirm.php 将显示用户输入的任何内容,即客户端名称和他上传的文件的名称。

  3. 在Confirm.php中,用户正在提交表单,它应该添加到数据库中,除了文件上传之外,其余字段都会添加到数据库中。在数据库中,文件上传字段显示为空。请有人解决这个问题。 我不知道如何将路径变量从Confirm.php访问到Add.php。

我是 php 新手。因此,任何帮助将不胜感激。

谢谢。

Home.php

<form action="Confirm.php" method="post" enctype="multipart/form-data" novalidate>
    <label> <span>Client</span>
      <select class="required" name="client">
             <?php
mysql_connect ("localhost","root","");
                    mysql_select_db ("eservice");
                    $select="eservice";
                    if (isset ($select)&&$select!="")
                    {
    $select=$_POST ['NEW'];
                    }
            ?>
          <?php
    $list=mysql_query("select * from client");
                    while($row_list=mysql_fetch_assoc($list))
                                            {
           ?>
          <?php $ct = $row_list['cname'];?>
          <option value="<?php echo $ct; ?>"<?php if($ct==$select){ echo "selected"; } ?> > <?php echo $ct; ?></option>
          <?php } ?>
      </select>
    </label>

    <label> <span>SRN</span>
<?php
$con=mysqli_connect("localhost","root","","eservice");
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$sql="Select * from main";
if ($result=mysqli_query($con,$sql))
  {
  // Return the number of rows in result set
  $rowcount=mysqli_num_rows($result);
  $rowcount++;
  // Free result set
  mysqli_free_result($result);
  }
mysqli_close($con);
?>
<input name="srn" type="text" id="srn" size="15" readonly="readonly" maxlength="40" value="<?php echo "$rowcount"; ?>"/>
</label>
    </div>
        <label>
            <span>File upload</span>
            <input type="file" name ="filename" required>
        </label>
    <button id='send' type='submit'>Add</button>
<button id='clear' type='reset'>Reset</button>
</form>

这是我的确认页面

Confirm.php

  <form action="Add.php" method="post" enctype="multipart/form-data" novalidate>
<label> <span>Client</span>
    <?php include_once('dbconn.php'); ?>
     <input name="client" type="text" id="client" size="15" readonly="readonly" maxlength="40" value="<?php echo $_POST['client']; ?>"/>
   </label>

        <label>
            <span>File upload</span>
    <?php  $path = '';
$folder = "Folder/";
if (is_uploaded_file($_FILES['filename']['tmp_name']))  
{   
    if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder.$_FILES['filename']['name'])) 
    {
    $path = $folder . $_FILES['filename']['name'];
    } 
    else 
    {
     $path = '';
    };
} 
else 
{
      $path = '';
}; ?>
        <input name ="filename" readonly="readonly" value="<?php echo $_FILES['filename']['name']; ?>"/>
        </label>
    <button id='clear' type='reset'>Back</button>
<button id='send' type='submit'>Add</button>
</form>

dbconn.php

<?php
$username = "root";
$password = "";
$hostname = "localhost"; 
$dbhandle = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");
$selected = mysql_select_db("eservice",$dbhandle) 
  or die("Could not select newsite database");
?>

这里我将上传的文件添加到 phpmyadmin 中。

Add.php

<?php
include_once('dbconn.php');
session_start();
$_SESSION['example']='Session Created';

 $client = $_POST['client']; // required

 if($client !='')
 {
$insQry = "Insert into `main` (client,upload) Values ('$client','$path')";
    $insertQ = mysql_query($insQry);
    if($insertQ!=''){
        echo "<h2>Data inserted successfully...</h2>";
    } else {
        echo "<h2>Not added</h2>";
    }
}
?>

最佳答案

未定义索引意味着如果该索引未设置或为空...您必须检查它是否为空。

在文件名错误中添加条件

if ( $_FILES['filename']['error'] == 0 ){
///your uploading code
}

为了进行事后验证检查是否已设置,请使用三元运算符:-

$client =isset( $_POST['client'])?$_POST['client']:'';

关于PHP文件上传到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27774160/

相关文章:

SQL(Mysql)命令问题

r - 未使用的参数(键 = "iris.hex")

php - 在 PHP 中使用 MySQL 数据进行搜索和排序

php - 重新加载 php 图像(验证码)

MySQL - 从服务器抓取 blob 文件

MySQL在触发器中插入来自json类型的多个变量

php - 多文件上传支持所有浏览器,特别是ie7,ie8和ie9

.net - MSDN 中的 asp :FileUpload. FileBytes 示例令人困惑

php - 如何在 linux vps 上更新 PHP 5.3 版本

php - endforeach 循环?