move_uploaded_file()
是 PHP 中用于将上传的文件移动到新位置的函数。如果这个函数不起作用,可能是由于以下几个原因:
move_uploaded_file()
函数用于将上传的文件从临时目录移动到服务器上的指定位置。这个函数对于处理表单上传的文件非常有用。
$_FILES['file']['error']
来检查上传过程中是否有错误发生。$_FILES['file']['error']
来检查上传过程中是否有错误发生。php.ini
文件中的 upload_max_filesize
和 post_max_size
设置,确保它们足够大以容纳上传的文件。php.ini
文件中的 upload_max_filesize
和 post_max_size
设置,确保它们足够大以容纳上传的文件。以下是一个完整的示例,展示了如何使用 move_uploaded_file()
函数:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$target_dir = "/path/to/target/directory/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
// 检查文件是否已经存在
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["file"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// 允许特定文件格式
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// 检查是否为真实图片
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["file"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// 检查临时目录是否可写
$temp_dir = ini_get('upload_tmp_dir');
if (!is_writable($temp_dir)) {
echo "Sorry, the temporary directory is not writable.";
$uploadOk = 0;
}
// 尝试移动文件
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["file"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
通过以上步骤和示例代码,你应该能够诊断并解决 move_uploaded_file()
函数不起作用的问题。
领取专属 10元无门槛券
手把手带您无忧上云