我在页面上有一个表单。它有6个文本字段,包含6个上传文件字段。我需要将文本和文件路径写入数据库。我在网上看过很多例子,但大多数是上传单个文件或从同一个上传字段上传多个文件。
我是php的新手,所以任何帮助都会非常有用。
非常感谢提前。
我有这个代码用于上传多个图像,但无法解释如何将这些图像与相应的输入字段一起发布。
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 1024*100; //100 kb
$path = "uploads/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
$count++; // Number of successfully uploaded file
}
}
}
}
答案 0 :(得分:0)
你可以这样做吗?
<form action="">
<ul>
<li>
<label>
<strong></strong>
<input type="text" name="name1" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file1" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="text" name="name2" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file2" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="text" name="name3" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file3" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="text" name="name4" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file4" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="text" name="name5" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file5" />
</label>
</li>
<li>
<label>
<strong></strong>
<input type="file" name="file6" />
</label>
</li>
<li><input type="submit"></li>
</ul>
</form>
在PHP中,您可以通过这种方式捕获它们:
<?php
if (count($_FILES) > 0) {
}
?>
答案 1 :(得分:0)
对于6个领域而言,它不会与一个领域大不相同。
你需要
需要注意的事项:
name="text1"
,name="file1"
,name="text2"
,name="file2"
等更新:现在您的代码已发布;您需要修改代码,以便它将文件名插入数据库中。这不是一个很难的改变。
要处理文本字段,有几种方法。您可以确保它们以text0
开头编号。然后,循环遍历文件,您可以使用$_POST['text'.$i]
($i
作为循环计数器)获取相应的文本字段。或者,您可以先构建一个文本值数组,然后一起处理文本值和文件上传。