这是我上传文件的php代码。该代码显示了变量初始化行中的udentified index的通知。此外,显示的输出是“无效的文件扩展名”,而我正在上传一个JPEG文件。上传图片文件时出现'无效的文件扩展名'错误
<?php
if (isset($_POST["submit"])) {
$name = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];
$error = $_FILES['file']['error'];
$size = $_FILES['file']['size'];
$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
switch ($error) {
case UPLOAD_ERR_OK:
$valid = true;
//validate file extensions
if (!in_array($ext, array('jpg','jpeg','png','gif'))) {
echo $ext;
$valid = false;
$response = 'Invalid file extension.';
}
//validate file size
if ($size/1024/1024 > 2) {
$valid = false;
$response = 'File size is exceeding maximum allowed size.';
}
//upload file
if ($valid) {
$targetPath = dirname(__FILE__) . DIRECTORY_SEPARATOR. 'uploads' . DIRECTORY_SEPARATOR. $name;
move_uploaded_file($tmpName,$targetPath);
header('Location: index.php') ;
exit;
}
break;
case UPLOAD_ERR_INI_SIZE:
$response = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
$response = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.';
break;
case UPLOAD_ERR_PARTIAL:
$response = 'The uploaded file was only partially uploaded.';
break;
case UPLOAD_ERR_NO_FILE:
$response = 'No file was uploaded.';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$response = 'Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.';
break;
case UPLOAD_ERR_CANT_WRITE:
$response = 'Failed to write file to disk. Introduced in PHP 5.1.0.';
break;
case UPLOAD_ERR_EXTENSION:
$response = 'File upload stopped by extension. Introduced in PHP 5.2.0.';
break;
default:
$response = 'Unknown error';
break;
}
echo $response;
}
?>
HTML文件如下:
<html>
<body>
<form method = "post" action = "upload.php">
<input type="file" name="file">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
检查你的'$ ext'包含发送文件? –
当我尝试打印这些变量的值时,它不打印任何东西,@MayankPandeyz –
尝试在表单标记中添加属性enctype =“multipart/form-data” –