从HTML表单将文件存储在MySQL数据库中

时间:2010-07-21 14:03:01

标签: php javascript html

我有以下HTML表单。正如您所看到的那样,它正在保存文件。

<form enctype="multipart/form-data" action="welcome.php" method="post
"onsubmit="return validateFormOnSubmit(this)"> 
 <b>Name</b><br/> <input type="text" name="fname" /> 
 <br/>
 <b>Description</b><br/> <TEXTAREA NAME="description" COLS=40
 ROWS=6></TEXTAREA><br/><br/> <input type="hidden" name="MAX_FILE_SIZE" value="100000"/> 

<b>Upload Picture</b><br/> <input name="uploadedfile" type="file" /><br /> 
 <b>Latitude</b><br/><INPUT name="lat" id ="lat" /><br/> 
 <b>Longitude</b><br/><INPUT     name="lng" id ="lng" /><br/> <input type="submit" />

正在处理此文件......

 $target_path = "uploads/";

 $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

其余信息存储在SQL数据库中。我想存储上传到该数据库中的文件。我将如何通过发送信息的php文件来执行此操作?我正在插入它......

   $query = "INSERT INTO <TABLE> (name, message, lat, lng, type)VALUES ('".$title."', '".$des."', '".$lati."', '".$long."', '".$type."')";
   $q=mysql_query($query) or die(mysql_error());

3 个答案:

答案 0 :(得分:5)

如果您确定要在MySQL数据库中插入HTML文件,有两种方法:

  1. 使用BLOB类型存储文件。

  2. 将文件转换为字符串,因为它是HTML,并将其存储在TEXT字段中。

  3. 但是,我的建议是将文件存储在服务器文件系统上,而不是存储在数据库中。

答案 1 :(得分:3)

你可以用两种方式做到这一点。

  1. 将文件复制到文件系统并将其路径保存在数据库中

  2. 将文件存储为数据库中的二进制数据。

    $data = file_get_contents($_FILES['photo']['tmp_name']);
    $data = mysql_real_escape_string($data);
    
  3. 然后将数据保存在字段中(您需要将该字段创建为blob)

答案 2 :(得分:1)

您的意思是上传文件的内容?

非常像下面这样:

// Obtain the file content (add error handling here...)
$contents = file_get_contents($_FILES['uploadedfile']['tmp_name']);
// Escape all special characters
$contents = mysql_real_escape_string($contents)
// Do the insert
$query = 'INSERT INTO <TABLE> (....) VALUES ("' . $contents . '")';
$q=mysql_query($query) or die(mysql_error());

编辑:marvin是对的,它的file_get_contents。