Php 将文件名添加到数据库而不上载它
我正在制作一个向数据库添加文件的系统。我使用一个表格:Php 将文件名添加到数据库而不上载它,php,mysql,file,upload,Php,Mysql,File,Upload,我正在制作一个向数据库添加文件的系统。我使用一个表格: <form action="insert.php" method="post" enctype="multipart/form-data"> Fil: <input type="file" name="file" id="file"> Titel: <input type="text" name="titel" /><br /> Längd (min): <input type="tex
<form action="insert.php" method="post" enctype="multipart/form-data">
Fil: <input type="file" name="file" id="file">
Titel: <input type="text" name="titel" /><br />
Längd (min): <input type="text" name="langd" /><br />
Medverkande: <input type="text" name="medverkande" /><br />
Reporter: <input type="text" name="reporter" /><br />
Fotograf: <input type="text" name="fotograf" /><br />
Sökord: <input type="text" name="sokord" /><br />
<input type="submit" />
</form>
菲勒:
滴度:
Längd(最小值):
梅德维尔坎德:
记者:
福托格拉夫:
斯科德:
insert.php中的代码:
<?php
$con = mysql_connect("database","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("165666-kltvplay", $con);
$filnamn = $_FILES["file"]["name"] ;
$sql="INSERT INTO Blad1 (ProgramID, Titel, Langd, Medverkande, Reporter, Fotograf, Sokord)
VALUES
('$filnamn','$_POST[titel]','$_POST[langd]','$_POST[medverkande]','$_POST[reporter]','$_POST[fotograf]','$_POST[sokord]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "En ny film inlagd: <br> ";
echo $filnamn;
mysql_close($con);
?>
您必须执行一些JavaScript魔术。用户选择文件后,可以读取文件名:
var fileName = document.getElementById('file').value;
然后将该值放入一个隐藏的输入字段(在表单中):
然后钩住表单的提交事件并删除文件输入,这样它就不会被提交
在服务器上读取隐藏文件名的值(或任何名称),并将其插入数据库
请注意,并非所有浏览器都会返回实际的文件路径。文件名将正确,但路径可能不正确
另外请注意,您将无法处理该文件(在服务器或客户端上)
至于你的最后一个问题(没有扩展名),看看这个:我不知道你为什么需要这样做,因为服务器将无法访问你计算机上而不是服务器上的文件。这意味着服务器将无法向其他访问者“提供”该文件。它只能告诉你名字是什么。我真的不太擅长javascript。我应该把你写的代码放在哪里?另外,我不需要文件路径,只需要名称。非常感谢。我不能为你写所有的代码。你得试一下。好的。:)但是你的意思是:然后钩住表单的提交事件并删除文件输入,这样它就不会被提交。你添加了一个事件处理程序(一个函数),当用户提交表单时,get会被调用。
document.getElementById('hidden-filename').value = fileName;