Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将文件名添加到数据库而不上载它_Php_Mysql_File_Upload - Fatal编程技术网

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;