PHP-文件上载不工作
当下面的代码运行时,它只返回PHP-文件上载不工作,php,file-upload,Php,File Upload,当下面的代码运行时,它只返回echo“未移动文件!” 目标是允许用户上传文件,现在就让它工作吧 account.php <form action="includes/upload.inc.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input ty
echo“未移动文件!”代码>
目标是允许用户上传文件,现在就让它工作吧
account.php
<form action="includes/upload.inc.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
选择要上载的图像:
upload.inc.php
<?php
if(isset($_POST['submit'])) {
$uploadsDir = '../uploads/';
$name = basename($_FILES["fileToUpload"]["name"]);
$tempName = basename($_FILES["fileToUpload"]['tmp_name']);
$error = $_FILES['fileToUpload']['error'];
if ($error > 0) {
echo "Error: " . $error . "<br />";
} else {
move_uploaded_file($temp_name, "$uploadsDir/$name");
if(move_uploaded_file($temp_name, "$uploadsDir/$name")) {
echo "Successful";
echo "Upload: " . $name . "<br />";
echo "Stored in: Uploads Directory!";
} else {
echo "Did not move files!";
}
}
}
?>
在本地主机之外托管服务器,最初我认为我的目录没有对rwx的权限,最后我更改了所有用户使用的具有完全权限的目录。这并没有改变结果。if(isset($\u POST['submit'])){
if(isset($_POST['submit'])) {
$uploadsDir = '/';
$name = ($_FILES["fileToUpload"]["name"]);
$tempName = ($_FILES["fileToUpload"]['tmp_name']);
$error = $_FILES['fileToUpload']['error'];
if ($error > 0) {
echo "Error: " . $error . "<br />";
} else {
if(move_uploaded_file($tempName, __DIR__.'/'.$name)) {
echo "Successful";
echo "Upload: " . $name . "<br />";
echo "Stored in: Uploads Directory!";
} else {
echo "Did not move files!";
}
}
}
$uploadsDir='/';
$name=($_文件[“fileToUpload”][“name”]);
$tempName=($_文件[“fileToUpload”]['tmp_名称]);
$error=$_文件['fileToUpload']['error'];
如果($error>0){
回显“错误:.”错误“
”;
}否则{
if(移动上传的文件($tempName,uuuu DIR.'/'.$name)){
呼应“成功”;
echo“上传:”.$name.“
”;
echo“存储在:上传目录!”;
}否则{
echo“没有移动文件!”;
}
}
}
您有3个错误:
您调用了两次move\u上传的文件
您声明了$tempName
变量,但在移动上传的文件
函数中使用了$tempName
声明临时文件路径变量时使用了basename
您的最终代码应该如下所示:
if (isset($_POST['submit'])) {
$uploadsDir = '../uploads/';
$name = basename($_FILES["fileToUpload"]["name"]);
$tempName = $_FILES["fileToUpload"]['tmp_name'];
$error = $_FILES['fileToUpload']['error'];
if ($error > 0) {
echo "Error: " . $error . "<br />";
} else {
if (move_uploaded_file($tempName, "$uploadsDir/$name")) {
echo "Successful";
echo "Upload: " . $name . "<br />";
echo "Stored in: Uploads Directory!";
} else {
echo "Did not move files!";
}
}
}
if(isset($\u POST['submit'])){
$uploadsDir='../uploads/';
$name=basename($_文件[“fileToUpload”][“name”]);
$tempName=$\u文件[“fileToUpload”]['tmp\u名称];
$error=$_文件['fileToUpload']['error'];
如果($error>0){
回显“错误:.”错误“
”;
}否则{
如果(移动上传的文件($tempName,“$uploadsDir/$name”)){
呼应“成功”;
echo“上传:”.$name.“
”;
echo“存储在:上传目录!”;
}否则{
echo“没有移动文件!”;
}
}
}
因为您已经在前一行中移动了它。您应该只运行一次move\u upload\u file($temp\u name,“$uploadsDir/$name”)
。如果您在本地主机之外托管,您必须指定目录,包括外部服务器的名称host@HtmHell执行此操作后仍然返回相同的错误消息。现在,您应该确保目录存在且可写。您可以使用var_dump(is_dir($uploadsDir)和&is_writeable($uploadsDir))检查此情况代码>@Fredrawlings这也不成功