【问题标题】:using a form variable with a file upload script使用带有文件上传脚本的表单变量
【发布时间】:2009-04-30 13:30:38
【问题描述】:

我正在使用这个表单作为文件上传表单(作为更大的 php 脚本的一部分,$pk 在实际中被清理了):

<?php

if (isset($_GET["pk"]))
 { $pk = $_GET["pk"];}
echo '<form action="up.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<input type="hidden" name="pk" value="$pk">
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
?>

我正在使用以下(非常精简的)代码来处理上传。任何语法错误都是我使用的制表符造成的。

<?php
 if (isset($_GET["pk"])) {
    $pk = $_GET["pk"];
}
$con = mysqli_connect("localhost","x","x", "x");
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
move_uploaded_file($_FILES["file"]["tmp_name"],
      "./" . $_FILES["file"]["name"]);
echo "Stored in: " . "./" . $_FILES["file"]["name"];
$fileQuery = "INSERT INTO FILES VALUES (?, ?)";
if ($fileInsert = $con->prepare($fileQuery)) {
    $fileInsert->bind_param("ss", $pk, $_FILES["file"]["name"]);
    $fileInsert->execute();
    $fileInsert->close();
} else {
    print_r($con->error);
}
?>

我想知道的是如何访问 $pk。是否已经通过表单传递给处理代码?

【问题讨论】:

    标签: php html forms


    【解决方案1】:

    建议:$pk 未设置。

    所以尝试使用$_REQUEST['pk'] 而不是_GET

    此外,回声中的单引号不会计算 $pk。改变

    input type="hidden" name="pk" value="$pk"
    

    input type="hidden" name="pk" value="' . $pk . '"
    

    干杯,T.

    【讨论】:

    • 所以在处理代码中,我应该有 if (isset($_REQUEST["pk"])) { $pk = $_REQUEST["pk"]; ?
    • @Joshxtothe4:您的处理代码与生成表单的代码不同吗?
    • 是的,我基本上有form.php和upload.php。 pk 从一页传递给 form.php,然后我希望它与文件一起传递给 upload.php,其中文件名和 pk 都将被放入 db 记录中。
    • @Joshxtothe4:是的,就这样使用它。 (或使用 $_POST)如果未设置,您可能还想初始化 $pk;)但您不必这样做。
    • 当我尝试使用 POST 或 REQUEST 回显 $pk 时,什么都没有。
    【解决方案2】:
    $_POST['pk']
    

    但我猜你会看到$pk,因为你使用单引号来回显字符串。

    【讨论】:

    • 所以在处理代码中,我应该有 (isset($_POST["pk"])) { $pk = $_POST["pk"]; ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多