【问题标题】:file upload script not working with variables文件上传脚本不适用于变量
【发布时间】:2013-09-16 00:19:59
【问题描述】:

我有一个 PDF 上传器,它应该将文件保存到基于从下拉菜单中选择的用户名变量的文件路径。

除了上传器之外,一切正常,因为它会显示用户名,并且目录是在注册时创建的。所以这没有问题。我的问题在于上传者的以下代码:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="pdf" /><br />
    <select name="folder"> 

<?php
$con=mysqli_connect("host","user","pass","dbname");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT `first_name`, `last_name`, `username` FROM `cw_users` WHERE 1");
$user = 'username';

while($row = mysqli_fetch_array($result)) {
  echo "<option value='". $row["username"] ."'>";
  echo " $row[username] "; 
  echo "</option>";
}

mysqli_close($con);
?>

<?php
if (isset($_POST['submit'])) {
  $pdfDirectory = "Users/".$_POST['folder']."/uploaded/";

  //get the name of the file
  $filename = basename( $_FILES['pdf']['name'], ".pdf");

  //remove all characters from the file name other than letters, numbers, hyphens and        underscores
  $filename = preg_replace("/[^A-Za-z0-9_-]/", "", $filename).".pdf";

  if (move_uploaded_file($_FILES['pdf']['tmp_name'], $pdfDirectory.$filename)) {
    //the path to the PDF file
    $pdfWithPath = $pdfDirectory.$filename;
  }
}

?>

    </select>
    <input type="submit" value="Upload pdf" name="upload_pdf" />
</form>

附:如果这可以调整为同时上传多个文件,那就太好了。

【问题讨论】:

  • 首先,这个if (isset($_POST['submit'])) { 正在寻找一个名为submit 的提交按钮,而你的是&lt;input type="submit" value="Upload pdf" name="upload_pdf" /&gt;,其名称是upload_pdf。如果有什么应该是 if (isset($_POST['upload_pdf'])) { 或像这样重命名您的提交按钮 &lt;input type="submit" value="Upload pdf" name="submit" /&gt; - 这样做再试一次。
  • 谢谢你,是的,我一直在编码大约 48 小时不停地不能相信我错过了。
  • 不客气。然后我将其作为答案,您可以接受它以将其标记为已回答。很高兴它成功了。
  • 否则您的问题将保留在“未回答”类别中。
  • 要上传多个文件,请查看此davidwalsh.name/multiple-file-upload,这可能很有用。你也可以看看Uploadifyuploadify.com

标签: php file-upload multifile-uploader


【解决方案1】:

您的条件语句if(isset($_POST['submit'])) 正在寻找名为“submit”的提交按钮,而您的条件语句名为“upload_pdf”。

<input type="submit" value="Upload pdf" name="upload_pdf" />
                                        ^^^^^^^^^^^^^^^^^

这应该读作if(isset($_POST['upload_pdf'])) 或将您的提交按钮重命名为:

<input type="submit" value="Upload pdf" name="submit" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2021-06-17
    • 2021-09-15
    • 1970-01-01
    • 2014-05-19
    • 2012-08-02
    • 2015-03-31
    相关资源
    最近更新 更多