我使用以下代码使用输入的文本名称创建新文件夹,并使用重命名来上传文件
$dir = $file_path .= $input .'/';
$file_path = "img/";
$input = $_POST['caption']; // this is the new folder you'll create
$file_path .= $input . '/';
if (!file_exists($file_path)) {
mkdir($file_path);
}
chmod($file_path, 0777);
$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
$ran = rand (1.1,1);
$ran2 = $ran.".";
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file1"]["name"]));
if ((($_FILES["file1"]["type"] == "image/gif")
|| ($_FILES["file1"]["type"] == "image/jpeg")
|| ($_FILES["file1"]["type"] == "image/jpg")
|| ($_FILES["file1"]["type"] == "image/pjpeg")
|| ($_FILES["file1"]["type"] == "image/x-png")
|| ($_FILES["file1"]["type"] == "image/png"))
&& ($_FILES["file1"]["size"] < 2000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file1"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file1"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file1"]["name"] . "<br>";
echo "Type: " . $_FILES["file1"]["type"] . "<br>";
echo "Size: " . ($_FILES["file1"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file1"]["tmp_name"] . "<br>";
if (file_exists("$dir" . $_FILES["file1"]["name"]))
{
echo $_FILES["file1"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file1"]["tmp_name"], "$dir" . $ran2 . $extension);
echo "Stored in: " . "$dir" . $_FILES["file1"]["name"];
}
}
}
else
{
echo "Invalid file or service down";
echo "It must be an image to be uploaded.";
}
但是,当我在托管中运行时,出现以下错误,我从您自己的网站获取了上述代码,我将两个代码合并为一个代码文件,创建了一个文件夹并重命名文件
Warning: move_uploaded_file(/1.png) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/a3629462/public_html/1.php on line 49
真的很难说你在做什么。例如行:
$dir = $file_path .= $input .'/';
$file_path = "img/";
$input = $_POST['caption']; // this is the new folder you'll create
$file_path .= $input . '/';
似乎不太明显。您设置$dir
为$file_path
附加一些输入还是仅仅是错误?
另一件事:
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
因此,在这些行之后,很难说出发生了什么,因为您只有$file_path
一个文件名。我总是宁愿使用时使用文件名move_uploaded_file
另一件事-看来您尝试上传2个文件。为什么只对第二个文件而不对第一个文件进行检查?也许那是错误的,您尝试仅上传一个文件?在这种情况下,您的代码可能会出错。
另一个错误是:
rand (1.1,1);
因为rand()
您只应传递整数而不是浮点数,1
就我所见,此整数将始终返回。
该$dir
目录也很可能不存在,因为您从未尝试在代码中创建一个目录。事实上,它似乎$dir
是/
为空字符串,所以你尝试创建文件/
(根服务器目录),当然什么是不允许的,因为你应该在你的用户/域目录中创建它。
我建议您再次编写整个代码。有很多可能的错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句