php - 使用文件路径更新 SQL 表

标签 php mysql pdo

我使用文件上传 PHP 将文件从用户输入表单获取到正确的路径:

<form  method="post" action="form_action1.php" enctype="multipart/form-data">
 <div class="form-group">
    <label for="attachment1">Add file(s)</label>
    <input type="file" class="form-control-file" id="attachment1" aria-describedby="fileHelp" name="attachment1">
    <input type="file" class="form-control-file" id="attachment2" aria-describedby="fileHelp" name="attachment2">
    <input type="file" class="form-control-file" id="attachment3" aria-describedby="fileHelp" name="attachment3">
    <small id="fileHelp" class="form-text text-muted">PDFs, Word Docs or images (PNG, JPG, etc.) Maximum 16 MB. </small>
 </div>
</form>

处理 $_FILES 的 PHP 脚本部分是:

<?php
 $servername = "localhost";
 $username = "jobs_usr1";
 $password = "XXXXXXXX";

try {
 $conn = new PDO("mysql:host=$servername;dbname=jobs_users", $username,    $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
if(isset($_POST['submit']) && !empty($_POST['submit'])) {
            $job_name=$_POST['job_name'];
            $comments=$_POST['comments'];
            $attachment1=$_POST['attachment1'];
            $attachment2=$_POST['attachment2'];
            $attachment3=$_POST['attachment3'];
            $due_date=$_POST['due_date'];
            $requestor=$_POST['requestor'];
            $req_email=$_POST['req_email'];
            $property=$_POST['property'];
            }
if(isset($_FILES['attachment1'])){
  $errors= array();
  $file_name = $_FILES['attachment1']['name'];
  $file_size = $_FILES['attachment1']['size'];
  $file_tmp = $_FILES['attachment1']['tmp_name'];
  $file_type = $_FILES['attachment1']['type'];
  $file_ext=strtolower(end(explode('.',$_FILES['attachment1']['name'])));

  $expensions= array("jpeg","jpg","png","doc","pdf");

  if(in_array($file_ext,$expensions)=== false){
     $errors[]="extension not allowed, please choose a JPEG, PNG, PDF or DOC file.";
  }

  if ( ! $errors ) {
     move_uploaded_file($file_tmp,"uploads/".$file_name);
     echo "Success";
  }else{
     print_r($errors);
  }
}

文件上传到正确的位置,但没有上传到 SQL 表的路径。我被告知我的脚本需要刷新查询,但我没有想到。

此外,我有多个文件上传区域。我可以在 if(isset($_FILES['MAYBE ARRAY'])){ 处创建一个数组吗?

最佳答案

这个问题从未得到解答,但我终于得到了答案。

这里是:

首先 - 我的表格:

<form method="post" action="form_action1.php" enctype="multipart/form-data">
   <div class="form-group">
        <label for="attachment1">Add file</label>
        <input type="file" class="form-control-file" id="attachment1" aria-describedby="fileHelp" name="attachment1">
   </div>

   <div class="form-group">
        <button type="submit" class="btn btn-primary" value="submit" name="submit" id="submit">Submit</button>
   </div>
</form>

然后我的 php 文件来处理输入:

<?php
    $servername = "localhost";
    $username = "jobs_usr1";
    $password = "XXXXXXX";

    try {
    $conn = new PDO("mysql:host=$servername;dbname=jobs_users", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";

if(isset($_FILES['attachment1'])){
  $errors= array();
  $file_name = $_FILES['attachment1']['name'];
  $file_size = $_FILES['attachment1']['size'];
  $file_tmp = $_FILES['attachment1']['tmp_name'];
  $file_type = $_FILES['attachment1']['type'];
  $file_ext=strtolower(end(explode('.',$_FILES['attachment1']['name'])));

  $expensions= array("jpeg","jpg","png","doc","pdf","docx","tif","tiff","zip","xls","xlsx","ppt","pptx","numbers");

  if(in_array($file_ext,$expensions)=== false){
     $errors[]="extension not allowed, please choose a different file";
  }

  if ( ! $errors ) {
     move_uploaded_file($file_tmp,"uploads/".$file_name);
     echo "Success";
     echo $file_name;
  }else{
     print_r($errors);
  }
}

$sql = "INSERT INTO `jobs_canjobs`(`attachment1`) VALUES ('$file_name')";

$conn->exec($sql);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
$conn = null;
?>

所以我在这里做的是说 if(isset($_FILES['attachment1'])){ 意思是输入中有文件,我分配 $file_name ,然后我使用 echo 然后将变量放入我的插入语句中。

这对我有用。

关于php - 使用文件路径更新 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232486/

相关文章:

javascript - 等待 PHP 中 Javascript 函数的执行结束

PHP - 字符串的所有组合大小写字符

php - php PDO 可以获取两个结果集吗?如果是,那么 1 个结果集或多于 1 个结果集哪个更好?

php - 列表问题,GROUP mysql

c# - 是否可以编写一个创建方法的方法?

php - 拉维尔 4.2 : Slow queries when using an external MySQL server

php - 如何获取和播放存储为 MySQL BLOB 的 WAV 文件?

php - 有没有办法在 PHP 函数中返回 HTML? (不将返回值构建为字符串)

php - Laravel - 排序的集合输出不是数组

尽管格式有效,MySQL str_to_date 仍生成 NULL