网站打开提示:”No input file specifed.“
当网站打开时提示“No input file specified.”,这通常意味着 PHP 脚本在处理文件上传时出现了问题。具体来说,可能是由于文件上传配置、表单提交方式或 PHP 脚本中的错误导致的。以下是一些常见的原因及解决方法:
1. 检查表单提交方式
确保表单使用了 POST 方法,并且设置了 enctype="multipart/form-data"。
示例表单
html
<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
<?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. 检查上传目录
确保上传目录存在并且具有适当的权限。
创建目录
bash
mkdir -p /path/to/your/uploads设置目录权限
bash
chmod -R 755 /path/to/your/uploads设置目录所有权
bash
chown -R www-data:www-data /path/to/your/uploads5. 检查 PHP 错误日志
查看 PHP 错误日志以获取更多详细信息。
查看 PHP 错误日志
bash
tail -f /var/log/apache2/error.log6. 检查表单提交
确保表单中的 name 属性正确。
示例表单
html
<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 脚本
php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
// 其他代码...
}8. 检查 $_FILES 变量
确保 $_FILES 变量中有数据。
示例 PHP 脚本
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. 检查防火墙和安全软件
确保防火墙或安全软件没有阻止文件上传。
检查防火墙
bash
sudo ufw status通过以上步骤,您可以逐步排查并解决“No input file specified.”的问题。如果问题仍然存在,请提供更多具体信息以便进一步排查。

扫码添加技术【解决问题】
专注企业网站建设、网站安全16年。
承接:企业网站建设、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。
专业解决各种疑难杂症,您有任何网站问题都可联系我们技术人员。
本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18396912

浙公网安备 33010602011771号