php 生成自动创建文件夹并上传文件的示例代码



<?php
// 目标文件夹路径
$targetDir = "uploads/";

// 检查目录是否存在,不存在则创建
if (!file_exists($targetDir)) {
    mkdir($targetDir, 0777, true);
    echo "目录 {$targetDir} 已创建。\n";
}

// 文件上传字段名,这里假设是 'file'
$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];

// 上传文件的完整路径
$filePath = $targetDir . $fileName;

// 尝试移动文件到目标文件夹
if (move_uploaded_file($fileTmpName, $filePath)) {
    echo "文件 {$fileName} 上传成功。\n";
} else {
    echo "文件 {$fileName} 上传失败。\n";
}
?>

<form action="" method="post" enctype="multipart/form-data">
    选择文件:
    <input type="file" name="file" id="file">
    <input type="submit" value="上传文件" name="submit">
</form>

**解释**:

1. **创建目录**:首先,我们定义了目标文件夹的路径 `$targetDir`。接着,使用 `file_exists()` 函数检查该目录是否存在,如果不存在,则使用 `mkdir()` 函数创建目录。`mkdir()` 的第三个参数 `true` 表示如果父目录不存在,则同时创建父目录。

2. **上传文件**:我们假设上传的字段名为 `'file'`。使用全局数组 `$_FILES` 来获取上传文件的信息,包括文件名 (`$fileName`) 和临时文件路径 (`$fileTmpName`)。然后,我们构造出文件的完整路径 `$filePath`。

3. **移动文件**:使用 `move_uploaded_file()` 函数将文件从临时存储位置移动到 `$filePath` 指定的位置。如果移动成功,则输出成功消息;否则,输出失败消息。

4. **HTML 表单**:提供了一个简单的 HTML 表单,用于选择文件和提交表单。表单的 `enctype` 属性被设置为 `"multipart/form-data"`,这是上传文件所必需的。

请注意,这段代码是一个基本的示例,并没有包含所有的错误处理和安全性检查(如检查上传文件的大小、类型等)。在实际应用中,你应该添加这些安全措施。