【问题标题】:Multiple image upload using php [closed]使用php上传多张图片[关闭]
【发布时间】:2012-01-29 23:34:56
【问题描述】:

我有一个简单的 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 循环,但我不知道把它放在哪里。

【问题讨论】:

  • 首先,这不会如图所示(images[] 将变为$_FILES['images'][0]);二、multiple="multiple"是个废话属性;第三,那里有一百万个教程 - 参见例如这个:davidwalsh.name/multiple-file-upload(我花了大约 5 秒钟在 Google 上搜索“多次上传 PHP”)
  • 首先,我查看了这百万个教程中的大约 500,000 个,但我仍然在问这个问题。其次,这 500,000 人中有 200,000 人建议使用 multiple="multiple" 属性。第三,如果您不打算提供帮助,请不要发表评论。
  • 别告诉我该怎么做; 500k 人说某事并没有做到这一点;我提供了一个有效解决方案的链接。
  • 是的,我今天已经阅读了该教程 3 遍。
  • @Mike 在不告诉人们您首先尝试了什么的情况下,我们必须做出(通常是正确的)假设,即您没有尝试过任何事情,而是要求某人为您完成工作。相信我,那里有很多这样的人。

标签: php


【解决方案1】:

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]

}

【讨论】:

  • 这完美地解释了它并且它有效。谢谢阿霍拉。
  • 不客气。如果您觉得答案足够好,请选择它作为答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 2021-07-31
  • 1970-01-01
  • 2021-12-01
相关资源
最近更新 更多