使用php上传多个图片

时间:2012-01-29 23:34:57

标签: php

我有一个简单的PHP脚本,允许用户上传照片。我想知道如何转换此脚本以使用户能够同时上传多张照片。

这是php脚本的一部分:

if (isset($_FILES['images'], $_POST['album_id'])) {

    $image = addslashes(file_get_contents($_FILES["images"]["tmp_name"]));
    $image_name = addslashes($_FILES['images']['name']);
    $image_size = getimagesize($_FILES["images"]["size"]);
    $image_temp = addslashes($_FILES['images']['tmp_name']);

    $allowed_ext = array('jpg', 'jpeg', 'png', 'gif');
    $ex = explode('.', $image_name);
    $image_ext = strtolower(end($ex));

    $album_id = $_POST['album_id'];

我需要对此部分进行哪些更改才能允许多次上传? 我知道在那里应该有一个foreach循环,但我不知道放在哪里。

1 个答案:

答案 0 :(得分:0)

Mike这是一个粗略的解决方案,我不会在这里编写完整的代码,但我会解释它背后的逻辑。

您有两种方法,一种是手动命名每个字段(这意味着您只限于手动添加的字段数)或使用数组。这两种方法之间的唯一区别是你将它们“指向”你的php脚本的方式。如果您为每个字段使用预定义名称,那么您可以正常调用它们,但如果您使用数组方法,则需要使用如下格式:$_FILES['FIELDNAME']['#ID'](#ID从0开始到创建的字段数 - 1,所以你可以做一段时间并全部通过它们。

所以你在html页面中有你的字段,在php页面中你会使用for循环来浏览它们。因此,您可以使用当前的PHP代码进行单个上传,然后浏览每个字段并逐个上传。这是一个例子:

for($i = 0; $i < count($_FILES['FILENAME']); $i++){

// USE YOUR UPLOAD SCRIPT HERE AND MAKE SURE YOU REPLACE YOUR CURRENT FILENAME to $_FILES['FILENAME'][$i]

}