PHP上传图片名称

时间:2014-03-22 16:27:01

标签: php html database upload web

我想编写一个将文件名上传到数据库的php代码。我希望能够先上传文件名。所以稍后我可以查找它的名字并调出文件。这就是我到目前为止所拥有的 HTML代码:

<html>
<form method="post" action="image_record.php" enctype="multipart/form-data">
<p>
Please Enter the Member Name.
</p>
<p>
Member or Affiliates Name:
</p>
<input type="text" name="nameMember"/>
<p>
Upload File
<input type="file" name="file"><br><br>
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
<br/>
</form>
</html>

<html>
<head>
</head>
<body>
<?php
$name = $_POST["nameMember"];
$con = mysql_connect("localhost","root","password");
if (!$con) {
die("can not connect: " . mysql_error());
}
mysql_select_db("snippets",$con);
if(isset($_POST['submit']))
{
    $file_name = $_FILES["file"]["name"];
    //echo $file_name
    $query="INSERT INTO value (file) VALUES ('".$file_name."')";
}
mysql_query($query,$con);
mysql_close($con);
?>
</body>
</head>
</html>

好的,所以它将文件上传到myphp admin,但不是文件名。这很好,但我如何从PHP代码调用文件名?

2 个答案:

答案 0 :(得分:1)

停止使用mysql_ deprecated个功能

使用 PDO / mysqli 功能

image_record.php

中的

if(isset($_POST['submit']))
{
    $file_name = $_FILES["file"]["name"];}
    //echo $file_name

    $query="insert into your_table_name (column_name) values('".$file_name."')";
    $res=mysql_query($sql,$query);
}

答案 1 :(得分:0)

首先 ,我测试了你的代码并确实将文件名插入我的数据库。

我的file列设置为VARCHAR(255)

现在,如果您想在上传后显示文件名,请使用以下内容:(假设您正在询问的内容)。

$result = mysql_query("SELECT * FROM value");
while($row = mysql_fetch_array($result))
{
echo '<p>'.$row['file'].' </p>';

}

以上代码将在您上传后显示该行中的所有文件。

如果您希望仅将其限制为一个,请使用LIMIT 1

例如:

$result = mysql_query("SELECT * FROM value LIMIT 1");
while($row = mysql_fetch_array($result))
{
echo '<p>'.$row['file'].' </p>';

}

如果要仅显示限制为1的第一条记录,请使用:

SELECT * FROM value ORDER BY file ASC LIMIT 1

如果您只想显示限制为1的最后一条记录,请使用:

SELECT * FROM value ORDER BY file DESC LIMIT 1

如果您不想限制显示的记录数量,那么只需删除LIMIT 1


但是,如果您希望稍后检索上传的文件,则无法实际上传该文件。

您需要使用move_uploaded_file()功能。