所以我为一名学校老师开了一个小网站,我一直在尝试实现一些PHP脚本,以便老师可以当场上传文件,而不必来找我手动上传到她的服务器。
我上传了文件本身,但是当我尝试使用文本框让教师输入名称时,字段内的文本拒绝将自己分配给变量。我对所有$ _POST []值使用了dump方法,它出现在数组中。
这是我的表单代码。
<body>
<div id="page">
<div id="header"></div>
<div id="cssmenu">
<ul>
<li><a href="../../index-2.html"><span>Home</span></a></li>
<li><a href="../../tline.html"><span>Timeline</span></a></li>
<li><a href="../../notes-apus.html"><span>Notes</span></a></li>
<li><a href="../../links.html"><span>Links</span></a></li>
<!-- <li class='last'><a href='videos.html'><span>Videos</span></a></li> --></ul>
</div>
<hr />
<div id="content" class="narrowcolumn">
<div class="post" id="div">
<h2 class="style8">File Upload</h2>
<div class="entry" align="center">
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">File:</label>
<input type="file" name="file" id="file"><br>
<label for="text">Entry Name:</label>
<input type="text" name="Filed" value="File Name" id="FileName">
<input type="submit" name="submit" value="Submit">
</form>
</div>
<p class="postmetadata"> </p>
</div>
</div>
<hr />
<div id="footer">
<p><br />Last updated
<script type="text/javascript">// <![CDATA[
document.write(document.lastModified);
// ]]></script>
</p>
</div>
</body>
以上是上传文件的代码。
<body>
<div id="page">
<div id="header"></div>
<div id="cssmenu">
<ul>
<li><a href="../../index-2.html"><span>Home</span></a></li>
<li><a href="../../tline.html"><span>Timeline</span></a></li>
<li><a href="../../notes-apus.html"><span>Notes</span></a></li>
<li><a href="../../links.html"><span>Links</span></a></li>
<!-- <li class='last'><a href='videos.html'><span>Videos</span></a></li> --></ul>
</div>
<hr />
<div id="content" class="narrowcolumn">
<div class="post" id="div">
<h2 class="style8">File Upload</h2>
<div class="entry" align="center">
<?php
$filenamed = $_GET["Filed"];
$temp = explode(".", $_FILES["file"]["name"]);
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
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>";
if (file_exists("uploadedFiles/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../../uploadedFiles/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploadedFiles/" . $_FILES["file"]["name"];
file_put_contents("./php_registries/ScullyFilenameRegistry.txt", $filenamed, FILE_APPEND);
}
}
?>
</div>
<p class="postmetadata"> </p>
</div>
</div>
<hr />
<div id="footer">
<p><br />Last updated
<script type="text/javascript">// <![CDATA[
document.write(document.lastModified);
// ]]></script>
</p>
</div>
</body>
我只是不明白什么是错的,所以我真的很喜欢这方面的帮助。
答案 0 :(得分:3)
您从$_GET
获取文件名,而不是$_POST
。
$filenamed = $_GET["Filed"];
应该是:
$filenamed = $_POST["Filed"];
答案 1 :(得分:1)
您正在使用您设置method='post'
的表单发出 POST 请求。
但是在PHP代码中,您使用$_GET['Filed']
来获取文件名,而是使用$_POST['Filed']
。