저는 PHP에 매우 익숙하며 다중 이미지 업로드 양식을하려고합니다 (프로세스를 반복 중입니다). 어떤 이유로이 경고 (경고 : end() 매개 변수 1 배열, 문자열 31 줄에 주어진 기대하고있다) 어떤이 줄이 ($temp = ($_FILES["file"]["name"][$i]);)
경고 : end()는 배열 1, 문자열 31에 주어진 문자열을 기대합니다.
내게 어떤 도움을주십시오. 또한 이미지 파일이 올바른 형식인지 확인한 후 업로드하기 전에 한 번 반복하여 올바른 형식인지 확인한 다음 업로드를 위해 다시 반복합니다. 시. SQL 주입 문제를 무시하고 추후에 추가 할 것입니다. 감사합니다 PHP는
<?php
ini_set('display_errors', 1); error_reporting(E_ALL);
ob_start();
session_start();
include 'connect.php';
if ($_POST)
{
//get form data
$Listingname = addslashes(strip_tags($_POST['Listingname']));
$Location = addslashes(strip_tags($_POST['Location']));
$nobed = addslashes(strip_tags($_POST['nobed']));
$zip = addslashes(strip_tags($_POST['zip']));
$price = ($_POST['price']);
$username=($_POST[$_SESSION['username']]);
if (!$Listingname||!$nobed||!$nobed||!$zip||!$price)
echo "Please fill out all fields";
else
{$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = $_FILES["file"]["name"];
for($i=0;$i<count($temp);$i++)
$temp = ($_FILES["file"]["name"][$i]);
$extension = end($temp);
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
|| ($_FILES["file"]["type"][$i] == "image/x-png")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& ($_FILES["file"]["size"][$i] < 400000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"][$i] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"][$i] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"][$i] . "<br>";
echo "Type: " . $_FILES["file"]["type"][$i] . "<br>";
echo "Size: " . ($_FILES["file"]["size"][$i]/1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"][$i] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"][$i]))
{
echo $_FILES["file"]["name"][$i] . " already exists please add another file, or change the. ";
}
else
{
$photo=$_FILES["file"]["name"][$i];
move_uploaded_file($_FILES["file"]["tmp_name"][$i],
"upload/$photo");
echo "Stored in: " . "upload/" . $_FILES["file"]["name"][$i];
}
}
}
else
{
echo "Invalid file" and die("Can not load picture");
}
{
$username=$_SESSION['username'];
//register into database
mysqli_query($con,"INSERT INTO Listing (username,Listingname,Location,nobed,zip,price,pic1) VALUES
('$username','$Listingname','$Location','$nobed','$zip','$price','$photo');") or die(mysqli_error());
echo "Listing Added";
}
}
}
else
{
?>
<form action="Submitlisting5.php" method="post"
enctype="multipart/form-data">
Listing Name:<br />
<input type='text' name='Listingname'><p />
Location:<br />
<input type='text' name='Location'><p />
Number of Beds:<br />
<input type='test' name='nobed'><p />
Zip:<br />
<input type='text' name='zip'><p />
Price:<br />
<input type='text' name='price'><p />
<label for="file">Pic1(File must be exceed 4mb):</label>
<input type="file" name="file[]" id="file[]"><br>
<label for="file">Pic2(File must be exceed 4mb):</label>
<input type="file" name="file[]" id="file[]"><br>
<br>
<input type='submit' name='submit' value='Submit'>
</form>
<?php
}
?>
그냥이 시도하지만, 지금은 사진을
{$allowedExts = array("gif", "jpeg", "jpg", "png");
for($i=0;$i<4;$i++){
$temp = ($_FILES["file"]["name"]);
$extension = $temp;
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
|| ($_FILES["file"]["type"][$i] == "image/x-png")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& ($_FILES["file"]["size"][$i] < 400000)
&& in_array($extension, $allowedExts))
세 번째 시험
문제는 당신이 당신의 변수를 덮어 쓰는됩니다for($i=0;$i<4;$i++){
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/pjpeg")
|| ($_FILES["file"]["type"][$i] == "image/x-png")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& ($_FILES["file"]["size"][$i] < 400000))
'$ _FILES [ "file"] [ "name"] [$ i]'무엇을 얻으실 수 있습니까? 또한,'end()'는 파일 확장자를 얻지 못한다. 배열의 마지막 요소를 검색하므로보고있는 오류가 발생합니다. – brandonscript
end()를 제거하면 곧바로 오류없이 사진을 업로드 할 수 없습니다. 1 이미지 업로드와 함께 모두 잘 작동하기 때문에 내가 무엇을해야하는지 잘 모르겠습니다. – Benyaman
방금 시도한 내용으로 내 대답을 편집했습니다. 오류는 없지만 곧장 점프하여 사진을 업로드 할 수 없습니다. – Benyaman