我正在尝试为我的网站上传文件,并且它已经过去几周一直在工作,直到今天我试图更改上传目录。现在它说未定义索引:扩展所以我试图改回它但它仍然说它。我的代码在这里:
的login.php
<!DOCTYPE html>
<head>
<style>
</style>
<body>
<?php
session_start();
$sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:'';
if(!empty($sessData['status']['msg'])){
$statusMsg = $sessData['status']['msg'];
$statusMsgType = $sessData['status']['type'];
unset($_SESSION['sessData']['status']);
}
?>
<div class="container">
<?php
if(!empty($sessData['userLoggedIn']) && !empty($sessData['userID'])){
include 'user.php';
$user = new User();
$conditions['where'] = array(
'id' => $sessData['userID'],
);
$conditions['return_type'] = 'single';
$userData = $user->getRows($conditions);
?>
<h2>Welcome <?php echo $userData['first_name']; ?>!</h2>
<a href="userAccount.php?logoutSubmit=1" class="logout">Logout</a>
<div class="regisFrm">
<p><b>Username: </b><?php echo $userData['username']; ?></p>
<p><b>Name: </b><?php echo $userData['first_name'].' '.$userData['last_name']; ?></p>
<p><b>Email: </b><?php echo $userData['email']; ?></p>
<p><b>Phone: </b><?php echo $userData['phone']; ?></p>
</div>
<?php
$user = $userData['username'];
$url = "/Users/makefile.php?uname=$user";
echo '<a href="'. $url .'" class="btn btn-default">Your Account</a>';
// echo '<a href="'. $url . '">Your Account</a>';
?>
<form action="upload.php?user=$user" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<br>
<input type="submit" value="Upload">
</form>
<?php
$dir_path = "uploads/";
$extensions_array = array('jpg','png','jpeg','PNG','mp3','MP3','mp4','MP4');
if(is_dir($dir_path))
{
$files = scandir($dir_path);
for($i = 0; $i < count($files); $i++)
{
if($files[$i] !='.' && $files[$i] !='..')
{
// get file name
// echo "File Name -> $files[$i]<br>";
// get file extension
$file = pathinfo($files[$i]);
$extension = $file['extension'];
// echo "File Extension-> $extension<br>";
$filephp = $files[$i] . '.php';
$filetxt = $files[$i] . '.txt';
$fileimg = $files[$i] . '.jpg';
$filetxtu = $files[$i] . 'uploaded' . '.txt';
// check file extension
if(in_array($extension, $extensions_array))
{
// show image
echo "<center><a href='$filephp?txt=$filetxt&img=$files[$i]&php=$filephp&user=$user&txtu=$filetxtu' target='_blank'>
<img src='$dir_path$files[$i]' style='width:300px;height:300px;align:left;'><br></a>
</center>";
}
}
}
}
?>
<?php }else{ ?>
<h2>Login to Your Account</h2>
<?php echo !empty($statusMsg)?'<p class="'.$statusMsgType.'">'.$statusMsg.'</p>':''; ?>
<div class="regisFrm">
<form action="userAccount.php?uimg=$" method="post">
<input type="email" name="email" placeholder="EMAIL" required="">
<input type="password" name="password" placeholder="PASSWORD" required="">
<div class="send-button">
<input type="submit" name="loginSubmit" value="LOGIN">
</div>
</form>
<p>Don't have an account? <a href="registration.php?user=$user">Register</a></p>
<p>Go back home <a href="index.html">Here</a></p>
</div>
<?php } ?>
</div>
upload.php的
<?php
$uname = $_GET['user'];
define("UPLOAD_DIR", "/uploads");
if (!empty($_FILES["myFile"])) {
$myFile = $_FILES["myFile"];
if ($myFile["error"] !== UPLOAD_ERR_OK) {
echo "<p>An error occurred.</p>";
exit;
}
// ensure a safe filename
$name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
// don't overwrite an existing file
$i = 0;
$parts = pathinfo($name);
while (file_exists(UPLOAD_DIR . $name)) {
$i++;
$name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
}
$nametxt = $name . ".txt";
$namephp = $name . ".php";
$nametxtu = $name . "uploaded" . ".php";
// preserve file from temporary directory
$success = move_uploaded_file($myFile["tmp_name"],
UPLOAD_DIR . $name);
$content = " ";
$fp = fopen($nametxt, "wb");
if( $fp == false ){
//do debugging or logging here
}else{
fwrite($fp,$content);
fclose($fp);
}
$text = file_get_contents('comments.php');
$paste = file_put_contents($namephp, $text);
if($paste)
{
echo "File copied correctly\n";
} else {
echo "There was a problem copying the file\n";
}
$file = fopen($nametxtu,"w");
echo fwrite($file, $uname);
fclose($file);
header("Location: login.php");
die();
if (!$success) {
echo "<p>Unable to save file.</p>";
exit;
}
// set proper permissions on the new file
chmod(UPLOAD_DIR . $name, 0644);
header("Location: uploadyourown.php");
die();
}
答案 0 :(得分:0)
检查上传目录是否只包含您上传的文件,可能是目录中包含空文件,并确保您上传的所有文件都有扩展名