使用带有文件上载脚本的表单变量

时间:2009-04-30 13:30:39

标签: php html forms

我使用此表单作为文件上传表单(作为更大的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。它是否已经以表格?

传递给处理代码

2 个答案:

答案 0 :(得分:0)

$_POST['pk']

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

答案 1 :(得分:0)

建议:$pk未设置。

因此,请尝试使用$_REQUEST['pk']代替_GET

此外,echo中的单引号不会评估$ pk。改变

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

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

干杯,T。