<?php // 连接数据库 $conn = mysqli_connect("localhost", "tms", "123456", "nut"); // 检查连接是否成功 if (!$conn) { die("数据库连接失败: " . mysqli_connect_error()); }echo "111"; // 处理表单提交 if ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取表单数据 $aoiStep = $_POST['aoi_step']; $defectType = $_POST['defect_type']; $layerCode = $_POST['layer_code']; $type = $_POST['type']; $dpet = $_POST['dpet']; $subcode = $_POST['subcode']; $codeDescription = $_POST['code_description']; $determinationRule = $_POST['determination_rule']; $imagePaths = []; // 存储图片路径的数组 // 处理上传的图片 for ($i = 1; $i <= 5; $i++) { $imageField = "image" . $i; $targetDir = "D:/phpstudy_pro/WWW/192.168.1.16/images"; // 设置上传目录的路径 $fileName = uniqid() . '_' . $_FILES[$imageField]["name"]; // 生成唯一文件名 $targetFile = $targetDir . '/' . basename($fileName); // 将反斜杠替换为正斜杠 $targetFile = str_replace('\\', '/', $targetFile); if (isset($_FILES[$imageField]) && $_FILES[$imageField]["error"] == UPLOAD_ERR_OK && move_uploaded_file($_FILES[$imageField]["tmp_name"], $targetFile)) { $imagePath = $targetFile; } else { $imagePath = ""; } $imagePaths[] = $imagePath; } // 其他图片的处理代码,类似上面的处理方式 $stmt = $conn->prepare("INSERT INTO tms (aoi_step, defect_type, layer_code, type, dpet, subcode, code_description, image1_path, image2_path, image3_path, image4_path, image5_path, determination_rule) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); if (!$stmt) { die("预处理失败: " . $conn->error); } $stmt->bind_param("sssssssssssss", $aoiStep, $defectType, $layerCode, $type, $dpet, $subcode, $codeDescription, $imagePaths[0], $imagePaths[1], $imagePaths[2], $imagePaths[3], $imagePaths[4], $determinationRule); if ($stmt->execute()) { echo "数据插入成功"; } else { echo "数据插入失败: " . $stmt->error; } // 关闭数据库连接 mysqli_close($conn); } ?>我文字内容能够上传到数据库,但是图片无法进行上传
时间: 2024-04-07 21:05:44 浏览: 109
php连接mysql之mysql_connect()与mysqli_connect()的区别
根据您提供的代码,您正在尝试将表单数据和上传的图片路径插入数据库。根据您的描述,文字内容可以成功上传到数据库,但是图片无法上传。
有几个可能导致图片无法上传的原因,请检查以下事项:
1. 检查上传目录的权限:确保您设置的上传目录具有足够的权限,以便PHP脚本可以在其中创建文件。您可以尝试使用绝对路径(例如,`/path/to/upload/directory`)而不是相对路径。
2. 检查表单的`enctype`属性:确保您的HTML表单中设置了正确的`enctype`属性,以便正确处理文件上传。您可以将表单标签中的`enctype`属性设置为`multipart/form-data`。
```html
<form method="POST" action="your_action_file.php" enctype="multipart/form-data">
<!-- 表单内容 -->
</form>
```
3. 检查PHP配置:确保PHP配置文件(php.ini)中的以下选项已启用:
```ini
file_uploads = On
upload_max_filesize = 2M ; 设置允许上传的最大文件大小
post_max_size = 8M ; 设置POST请求允许的最大数据量
```
4. 检查图片字段名称:确保您的HTML表单中的文件上传字段与PHP代码中的字段名称匹配。例如,您在PHP代码中使用`$_FILES[$imageField]`来获取图片字段,那么在HTML表单中应该有类似的字段名称。
请检查上述事项,并确保您的代码正确处理文件上传。如果问题仍然存在,请提供更多关于错误或警告消息的详细信息,以便我可以为您提供更具体的帮助。
阅读全文