网站打开提示:”No input file specifed.“
当网站打开时提示“No input file specified.”,这通常意味着 PHP 脚本在处理文件上传时出现了问题。具体来说,可能是由于文件上传配置、表单提交方式或 PHP 脚本中的错误导致的。以下是一些常见的原因及解决方法:
1. 检查表单提交方式
确保表单使用了 POST
方法,并且设置了 enctype="multipart/form-data"
。
示例表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
2. 检查 PHP 配置
确保 PHP 配置允许文件上传,并且相关配置正确。
查看 PHP 配置
- 访问
http://yourdomain.com/info.php
(其中info.php
包含<?php phpinfo(); ?>
)来查看 PHP 配置信息,确认file_uploads
是否为On
。
修改 php.ini
- 找到您的
php.ini
文件。 - 确认以下配置项:
ini
file_uploads = On upload_max_filesize = 2M post_max_size = 8M max_file_uploads = 20
- 保存文件并重启 Web 服务器。
3. 检查上传脚本
确保上传脚本正确处理文件上传。
示例上传脚本
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if ($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
4. 检查上传目录
确保上传目录存在并且具有适当的权限。
创建目录
mkdir -p /path/to/your/uploads
设置目录权限
chmod -R 755 /path/to/your/uploads
设置目录所有权
chown -R www-data:www-data /path/to/your/uploads
5. 检查 PHP 错误日志
查看 PHP 错误日志以获取更多详细信息。
查看 PHP 错误日志
tail -f /var/log/apache2/error.log
6. 检查表单提交
确保表单中的 name
属性正确。
示例表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
7. 检查 PHP 脚本中的变量
确保 PHP 脚本中使用的变量名称与表单中的 name
属性匹配。
示例 PHP 脚本
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
// 其他代码...
}
8. 检查 $_FILES
变量
确保 $_FILES
变量中有数据。
示例 PHP 脚本
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_FILES["fileToUpload"]) && $_FILES["fileToUpload"]["error"] === UPLOAD_ERR_OK) {
// 处理上传
} else {
echo "No file specified.";
}
}
9. 检查服务器配置
确保服务器配置允许文件上传。
Apache 配置
- 确认
AllowOverride All
已经启用。apache<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
10. 检查防火墙和安全软件
确保防火墙或安全软件没有阻止文件上传。
检查防火墙
sudo ufw status
通过以上步骤,您可以逐步排查并解决“No input file specified.”的问题。如果问题仍然存在,请提供更多具体信息以便进一步排查。
扫码添加技术【解决问题】
专注中小企业网站建设、网站安全12年。
熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。
承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。
专业解决各种疑难杂症,您有任何网站问题都可联系我们技术人员。