0
可能重複:
Getting ‘undefined index’ error while trying to use $_FILE in PHP
我已經爲圖像的PHP上傳表單。它使用會話變量來確定上傳目錄。上傳,滑塊目錄或側目錄有兩個選項,所以我有一個確定目錄的if語句。如果我從表單中刪除了這個,那麼整個事情都可以正常工作,但是$ _FILES似乎沒有被聲明,並且返回爲未定義的索引錯誤。
可以發現的代碼如下:
upload.php的
<?php
include("resize-class.php");
$allowedExt = array('jpg', 'jpeg', 'JPG', 'JPEG');
$tmps = explode(".", $_FILES['file']['name']);
$extension = end($tmps);
session_start();
if ($_POST['dir'] == 'side'){
$dirent = $_SESSION['sideDir'];
}
else if($_POST['dir'] == 'slider'){
$dirent = $_SESSION['sliderDIR'];
}
else{
die();
}
echo $_POST['dir'];
print_r($_FILES);
if (($_FILES["file"]["type"] == "image/jpeg")&& ($_FILES["file"]["size"] < 4000000000)&& in_array($extension, $allowedExt)) {
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br />";
echo 'here';
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . " <br />\n";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br /> \n";
echo "Stored in: " . $_FILES["file"]["tmp_name"]. "<br />\n";
}
if (file_exists($dirent. $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . "already exists";
} else {
$fName = $_FILES["file"]["name"];
$tmpname = $_FILES["file"]["tmp_name"];
move_uploaded_file($_FILES["file"]["tmp_name"], $dirent . $_FILES["file"]["name"]);
$number = FileCounter($dirent);
echo "Number of images in DIR: " . $number. " <br />\n ";
$number +1;
$resizeObj = new resize($dirent.$fName);
$resizeObj -> resizeImage(250, 150, 'crop');
$resizeObj -> saveImage($dirent.$number.".jpg", 100);
unlink ($dirent.$_FILES["file"]["name"]);
}
} else {
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
function FileCounter($dir) {
$counter = 0;
$iterator = new DirectoryIterator(dirname($dir));
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
if ($fileinfo->getExtension() == "jpg") {
$counter++;
echo $counter . "\n";
}
}
}
return $counter;
}
?>
HTML表單:
<form action="includes/upload.php" method="post">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<div class="styled-select">
<label for="dir"> Upload to:</label>
<select size="2" name="dir" multiple="yes" id="dir">
<option value="side" >Side Images</option>
<option value="slider" >Slider Images</option>
</select>
</div>
<br />
<input type="submit" name="submit" value="Submit" />
</form>
我猜測,有無論是在非常愚蠢的錯誤我代碼,我忽略了,因爲我一直在盯着它一個小時,或者有一些我不知道的$ _FILES和$ _POST。 (或者我可能已經把這個表單編成了一個白癡!)。
你會實際上是更好粘貼在這裏的代碼 - 點擊次數更少,少廣告,更多的關注。 – nickhar
Your from在表單元素 – Baba
中缺少'enctype =「multipart/form-data」',如果該鏈接過期,則此帖不會對其他所有遇到類似問題的人無用。 –