У меня есть форма загрузки, где я хочу разрешить пользователям загружать изображения и видео, но когда я отправляю форму, она бросает сообщение об ошибке, которое я установил в оператор else. Что я сделал не так?
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["upload"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "video/avi")
|| ($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 100000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["upload"]["error"] > 0)
{
echo "Return Code: " . $_FILES["upload"]["error"] . "<br>";
}
else
{
$fileName = $temp[0].".".$temp[1];
$temp[0] = rand(0, 3000); //Set to random number
$fileName;
if (file_exists("content/" . $_FILES["file"]["name"]))
{
echo $_FILES["upload"]["name"] . " already exists. ";
}
else
{
$newfilename = rand(1,99999).end(explode(".",$_FILES["upload"]["name"]));
move_uploaded_file($_FILES["upload"]["tmp_name"], "content/" . $newfilename);
echo "Stored in: " . "content/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file or connection failure.";
}
?>
"Неверный файл или сбой подключения". это сообщение об ошибке, которое я получаю.
Это то, что я использую, однако я не вставляю временные ряды
<?php
$fileName = $files['upload']['name'];
$fileArray = explode('.', $fileName);
$extension = count($fileArray) - 1;
$extension = $fileArray[$extension];
// Put allowed file extensions in the following array
$allowedExt = array("gif",
"avi",
"mp4",
"jpeg",
"jpg",
"pjpeg",
"x-png",
"png");
if(!in_array($extension, $allowedExt)){
// print error message here
exit;
}
$fileType = $_FILES['upload']['type'];
# Put allowed file mime types here as an extra check
$allowedTypes = array("image/gif",
"video/avi",
"video/mp4",
"image/jpeg",
"image/jpg",
"image/pjpeg",
"image/x-png",
"image/png");
if(!in_array($fileType, $allowedTypes)){
// print error message here
exit;
}
// Add the rest of your code here as required
?>
Учитывая имя файла: i1_small.jpg
для загрузки (это файл, который я использовал с моего компьютера)
Следующий код переименует его в: 74447_i1_small.jpg
(используя случайное число из функции rand()
которая уже была в вашем коде)
У вас были несоответствующие имена параметров.
Например:
$_FILES["upload"]["name"])
а также $_FILES["file"]["name"])
Они должны совпадать.
HTML-форму, которую я использовал: (убедитесь, что вход соответствует name="file"
как показано ниже)
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
Попробуйте это сейчас:
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "video/avi")
|| ($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 100000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
// $fileName = $temp[0].".".$temp[1];
$fileName = $temp[0].".".$temp[1];
$temp[0] = rand(0, 3000); //Set to random number
$fileName;
if (file_exists("content/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
$newfilename = rand(1,99999) . "_" . ($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], "content/" . $newfilename);
echo "Stored in: " . "content/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file or connection failure.";
}
?>
if
. Можете ли вы опубликовать свой код<form>
?