使用PHP保存MySQL中的上载文件路径

时间:2011-11-23 16:15:18

标签: php mysql

我正在尝试上传文件,并将路径保存到MySQL。

我想为每个文件创建一个自定义路径,该路径将基于变量,但文件的实际文件名将保持不变。

我通过POST提交文件。我相信我必须使用$ _FILE?表单项的名称是“file”。

我该怎么做呢?注意:我不想将实际文件存储在数据库中,只是路径。

编辑:我也想将实际文件保存到路径中。

2 个答案:

答案 0 :(得分:0)

查看此页面:http://www.php.net/manual/en/features.file-upload.post-method.php有一个将上传的文件移动到某个文件夹的示例。

所以是的,相关信息存储在$ _FILE

答案 1 :(得分:0)

首先创建appvars.php,如下面的内容

<?php
  // Define application constants
  define('GW_UPLOADPATH', 'foldername/');
  define('GW_MAXFILESIZE', 32768);      // 32 KB
?>

然后创建代码来保存文件,就像这样

<?php
  require_once('appvars.php');

  $file = mysqli_real_escape_string($dbc, trim($_FILES['file']['name']));
  $file_type = $_FILES['file']['type'];
  $file_size = $_FILES['file']['size'];
   //do some checks to make sure the person upload the file type you like
   if ((($file_type == filetype) // check for the size also
    && ($file_size > 0) && ($file_size <= GW_MAXFILESIZE)) {
    if ($_FILES['file']['error'] == 0) {
      // Move the file to the target upload folder
      $target = GW_UPLOADPATH . $file;
      if (move_uploaded_file($_FILES['file']['tmp_name'], $target)) {
        // Write the data to the database
        mysqli_connect( database info);
        $query = "INSERT INTO table (file ) VALUES ($file)";
        mysqli_query($dbc, $query);
      }
    }
  }
  mysqli_close($dbc);

?>