我想使用此代码上传多个图像,但我不能,我认为它将通过使用每个但每次我尝试错误来到处 我想在一列中插入整个图像路径,并在每张图片之后插入' 这是php代码
if (isset($_POST['upload_file'])) {
$date = date('Y-m-d h:i:s');
if ($_FILES['image']['name'] != '') {
$temp = explode('.', $_FILES['image']['name']);
$image_name = round(microtime(true)) . '.' . end($temp);
$image_tmp = $_FILES['image']['tmp_name'];
$image_size = $_FILES['image']['size'];
$image_ext = pathinfo($image_name,PATHINFO_EXTENSION);
$image_path = '../media/file/'.$image_name;
$image_db_path = '../media/file/'.$image_name;
if ($image_size < '50000000') {
if ($image_ext == 'jpg' || $image_ext == 'png' || $image_ext =='gif' || $image_ext == 'jpeg') {
if (move_uploaded_file($image_tmp, $image_path)) {
$ins_sql = "INSERT INTO files (imgs_paths, date) VALUES ('$image_db_path', '$date')";
if (mysqli_query($conn,$ins_sql)) {
header('Location: index.php');
}else{
$error = '';
}
}else{
$error = '';
}
}else{
$error = '';
}
}else{
$error = '';
}
} else{
$error = '';
}
}
这里是html代码
<input type="file" accept="image/*" name="image[]" multiple/>
答案 0 :(得分:0)
您正确使用foreach
。如果您需要上传多个,则需要使用它。它很简单:
foreach($_FILES['image'] as $i => $file){
///... other code
$temp = explode('.', $_FILES['image'][$i]['name']);
$image_name = round(microtime(true)) . '.' . end($temp);
$image_tmp = $_FILES['image'][$i]['tmp_name'];
$image_size = $_FILES['image'][$i]['size'];
///... rest of code
}
由于它是一组图像,因此您需要访问每个元素。请注意我们如何使用数组索引($i
)来访问循环中的当前元素。
作为@RiggsFolly stated,您还可以在循环中使用$file
,因为也循环中的当前元素。 (而不是$_FILES['image'][$i]...
)