尝试上传文件时遇到问题。我在localhost和托管服务器上都试过了。有什么奇怪的是我在$_FILES['fichero']['error']
中得到错误代码0,但无论如何文件永远不存在。我检查了临时目录的权限,他们是对的。我还查看了is_uploaded_file
,我得到了肯定的回答。
这是我在PHP中使用的代码和同一文件中的表单。
<?php
if(isset($_POST['submit'])) {
echo '<p>File uploaded.</p>';
if ($_FILES['fichero']['error'] == 0 && is_uploaded_file($_FILES['fichero']['tmp_name'])) {
echo '<p>Successful upload.</p>';
echo '<p>File is temporarily in: ' . $_FILES['fichero']['tmp_name'] . '</p>';
} else {
echo '<p>Problem with file upload.</p>';
}
}
?>
<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<p>Name: </p>
<input type="text" name="name" value="name">
<p>File: </p>
<input type="hidden" name="MAX_FILE_SIZE" value="3276800">
<input type="file" name="fichero">
<input type="submit" name="submit" value="submit">
</form>
我将不胜感激任何帮助。提前谢谢!
答案 0 :(得分:0)
您应该使用move_uploaded_file将文件上传到服务器中的某个位置。您还可以按尺寸,类型等限制上传。有关详细信息,请查看http://in1.php.net/manual/en/function.move-uploaded-file.php。 is_uploaded_file仅检查文件是否使用HTTPPOST
方法上载(意味着它不上传文件)。
<?php
if(isset($_POST['submit'])) {
echo '<p>File uploaded.</p>';
$fileName = $_FILES["fichero"]["name"];
$fileTmploc = $_FILES["fichero"]["tmp_name"];
$filePath = "upload/".$fileName;
if(move_uploaded_file($fileTmploc, $pathAndName)==TRUE){
echo "Upload Successful";
} else {
echo "Upload Failed";
}
}
?>
请在您的应用程序根目录中创建上传文件夹,并提供必要的写入权限。