我有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>
我会将名称,标题,歌词数据保存到数据库中。
但是当我尝试将上传文件保存到数据库中时,它显示错误
答案 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保存到数据库中。但我强烈反对您不保存数据库中的文件。相反,您应该考虑将文件保存在所选目录中,并仅保存数据库中文件的名称。