如何在php中保存文件和一些数据

时间:2018-06-12 12:42:42

标签: php

我有html输入字段。

那些输入字段是

1.name

2.title

3.lyrics

4.upload

现在我需要同时保存姓名,标题,歌词和上传文件到数据库。怎么做?

我在这里分享我的代码

 <?php
 $connection = mysqli_connect("localhost", "root", "upload"); // 
     Establishing Connection with Server
   $db = mysqli_select_db($connection, "song"); // Selecting Database from 
 Server
  if(isset($_POST['submit'])){ // Fetching variables of the form which 
  travels in URL
  $name = $_POST['name'];
  $title = $_POST['title'];
  $lyrics = $_POST['lyrics'];


   if($name !=''||$title !=''||$lyrics !=''){
   //Insert Query of SQL
   $query = mysqli_query($connection, "insert into users(name, title, 
   lyrics) values ('$name', '$title', '$lyrics')");
   echo "<br/><br/><span>Data Inserted successfully...!!</span>";
   }
   else{
   echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>";
   }
   }
   mysqli_close($connection); // Closing Connection with Server
   ?>



   <div style="margin:1em auto; width:333px; text-align:center;">
    <form method="post" enctype="multipart/form-data">

   <table style="margin-top: 200px;line-height: 27px;">
     <tr><td><label for='name' >Name: </label></td>
         <td> <input type="text" name="name"></td></tr>

        <tr><td>   <label for='title' >Title: </label></td>
       <td> <input type="text" name="title"></td></tr>

         <tr><td>  <label for='lyrics' >lyrics: </label></td>
        <td><textarea cols="25" name="lyrics" rows="5"></textarea></td></tr>

         <tr> <td>  <label for='file'>upload:</label></td>
         <td><input type="file" name="files" multiple="multiple"></td>
        <td><input type="submit" name="upload" value="upload!" ></td></tr>
       </table>
              <button class="submit" name="submit" type="submit" 
       value="Insert">save</button>
        </form>
        </div>

我会将名称,标题,歌词数据保存到数据库中。

但是当我尝试将上传文件保存到数据库中时,它显示错误

3 个答案:

答案 0 :(得分:0)

使用此

$info = pathinfo($_FILES['userFile']['name']);
$ext = $info['extension']; // get the extension of the file
$newname = "newname.".$ext; 

$target = 'images/'.$newname;
move_uploaded_file( $_FILES['userFile']['tmp_name'], $target);

答案 1 :(得分:0)

您无法接收文件内容是$_POST条目。文件上传到临时目录中,您将与$_FILES数组进行交易。查看POST method uploads文档页面了解更多信息。

答案 2 :(得分:0)

要访问上传的文件,您需要参考$ _FILES。

$file = $_FILES['files'];
$base64 = base64_encode(file_get_contents($file['tmp_name']));

然后,您可以在保存表单中的其他字段时将$ base64保存到数据库中。但我强烈反对您不保存数据库中的文件。相反,您应该考虑将文件保存在所选目录中,并仅保存数据库中文件的名称。