在 Laravel 4 中上传多个文件

2023-11-28

这是我用于上传多个文件的控制器代码,我正在从 Google Chrome 上的“postman”rest API 客户端传递键和值。我正在从邮递员添加多个文件,但只有 1 个文件正在上传。

public function post_files() {
    $allowedExts = array("gif", "jpeg", "jpg", "png","txt","pdf","doc","rtf","docx","xls","xlsx");
    foreach($_FILES['file'] as $key => $abc) {
        $temp = explode(".", $_FILES["file"]["name"]);
        $extension = end($temp);
        $filename= $temp[0];
        $destinationPath = 'upload/'.$filename.'.'.$extension;

        if(in_array($extension, $allowedExts)&&($_FILES["file"]["size"] < 20000000)) {
            if($_FILES["file"]["error"] > 0) {
                echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
            }
            if (file_exists($destinationPath)) {
                echo $filename." already exists. ";
            } else {
                $uploadSuccess=move_uploaded_file($_FILES["file"]["tmp_name"],$destinationPath);
                if( $uploadSuccess ) {
                    $document_details=Response::json(Author::insert_document_details_Call($filename,$destinationPath));
                    return $document_details; // or do a redirect with some message that file was uploaded
                // return Redirect::to('authors')
                } else {
                    return Response::json('error', 400);
                }
            }
        }
    }  
}

我也尝试过此代码,但它返回临时文件夹中文件的位置

$file = Input::file('file');
            echo count($file);

and echo count($_FILES['file']);总是返回给我 5.谁能告诉我为什么?

and why foreach(Input::file('file') as $key => $abc)给出错误无效参数


解决方案:

您只需执行以下操作即可获取所有文件:

$allFiles = Input::file();

解释:

班上Input实际上是一个 FacadeIlluminate\Http\Request类(是的,就像Request外观 - 它们都充当同一类的“面孔”!**)。

这意味着您可以使用 Request 中可用的任何方法。

如果我们搜索这个函数file(),我们看到它的工作原理是这样的:

public function file($key = null, $default = null)
{
    return $this->retrieveItem('files', $key, $default);
}

Now, retrieveItem()是一个受保护的方法,所以我们不能直接从控制器调用它。然而,更深入地观察,我们发现我们可以通过file()方法“空”为钥匙。如果我们这样做了,那么我们就会得到所有的物品!

protected function retrieveItem($source, $key, $default)
{
    if (is_null($key))
    {
        return $this->$source->all();
    }
    else
    {
        return $this->$source->get($key, $default, true);
    }
}

所以,如果我们调用Input::file(),Request类将在内部运行$this->retrieveItem('files', null, null)这将依次运行return $this->files->all();我们将获得所有上传的文件。

** 注意InputFacade有额外的方法get()可以在其中找到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Laravel 4 中上传多个文件 的相关文章

  • 将字符串的第一个字母大写(前面带有特殊字符) - PHP

    我想将字符串大写 例如 hello 我希望我的函数返回 Hello 我尝试过使用 regex 和 preg match 但没有运气 这是我之前的问题 与此相关 preg match 正在匹配两个字符 而它应该只匹配一个字符 https st
  • 字符串的外部文件,而不是对它们进行硬编码

    我有开发一些 Android 应用程序的经验 这些应用程序可以轻松地拥有可以存储字符串的 XML 字符串文件 上次我开发桌面 Java 应用程序时 我对字符串进行了硬编码 例如按钮标题 标签等 我后来了解到这是不好的做法 我应该将字符串存储
  • 从 Symfony2 中的 http_basic auth 注销

    每当我去 admin logout 我已正确重定向到项目的根目录 但在访问时仍处于登录状态 admin 因为没有提示我输入凭据 这是我的配置 安全 yml security firewalls admin area pattern admi
  • “警告:mysql_query():提供的参数不是有效的 MySQL-Link” - 为什么?

    我的代码有什么问题吗 我不断收到此错误 Warning mysql query supplied argument is not a valid MySQL Link resource in functions php on line 4
  • Laravel 注册成功后如何重定向到上一页?

    现在redirectTo被设定为 home 我想知道如何重定向到上一页 我尝试使用 protected redirectTo URL previous 但我得到解析错误 期待 or 解决这个问题的最佳解决方案是什么 我想我需要重写 redi
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 如果端口不是 80,.htaccess 重定向到错误页面

    我正在运行一个便携式服务器 http www server2go web de 通过 USB 棒 问题是我还在我的本地计算机上安装了 WAMP 并且 Apache 不知何故在 Windows 启动时启动 因为一些我现在不记得的随机原因并且无
  • WooCommerce 自定义字段 - 多选

    我在 WooCommerce 的结账页面添加额外的字段 我可以添加文本框等基本字段 但需要添加一个 多 选择框 用户可以在其中选择多个项目 我已经弄清楚如何通过代码添加选择框 如下所示 add action woocommerce afte
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • 带摘要的 php curl 返回两个响应

    我发现了一个 奇怪 的 php CURL 行为 这让我抓狂 基本上我正在做的是使用curl 进行摘要身份验证的调用 这是我的代码的摘录 curl setopt this gt c CURLOPT HTTPAUTH CURLAUTH DIGE
  • 很简单的PHP加法问题

    我想我已经关注这个问题太久了 为什么这段代码打印 no 它应该打印 yes 不是吗 我在 PHP 5 3 和 PHP 5 2 上尝试过 都打印 no See 比较浮点数 http www cygnus software com papers
  • CakePHP Unfilled 单选按钮在提交时更改为不需要的值

    我有这个表单元素 form gt input ChecklistResponseGovernmentInfo driversLicenseIsOnline array type gt radio empty gt true options
  • 如何使用 Google Calendar API 和官方 PHP 库创建全天活动?

    我有这个代码 event new Event event gt setSummary event summary event gt setLocation event location start new EventDateTime sta
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • 什么是 PHP session_start()

    它是否基于 cookie 启动当前会话 从 PHP 网站上得到的 PHP如何控制会话 如果我在用户打开我的登录页面时启动会话 我什至可以使用该会话做什么 我可以使用当前会话来获取有关登录用户的信息吗 PHP 会话系统允许您将数据安全地存储在
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 在 iPhone 模拟器中从硬盘读取文件

    是否可以将文件 从我的普通文件系统 读入在 iPhone 模拟器上运行的 iPhone 应用程序 据我所知 iPhone 本身没有 用户可访问的 文件系统 但这只是为了测试 并且只能在模拟器中运行 该文件将是一个可以在应用程序运行时编辑的文
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • Yii2 无效调用:设置只读属性

    我有一个Post具有多对多关系的模型Tags 在 Post 模型中定义 public function getTags return this gt hasMany Tags className id gt tag id gt viaTab
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types

随机推荐

  • 从原始位到 jpeg,无需写入文件

    我有一个实时应用程序 它接收以 base64 编码的 jpg 图像 我不知道如何在 matlab 中显示图像 而不必将图像保存在磁盘中并随后打开它 这是我到目前为止的代码 它在显示图像之前将图像保存在磁盘中 raw base64decode
  • 如何在ash shell中保持程序在后台运行

    我需要通过 SSH 连接到嵌入式设备 启动后台程序 然后断开连接并保持后台进程运行 问题是嵌入式设备正在使用 ash shell 不是 bash 或其他任何东西 因此 nohup 和 screen 不可用 我还没有找到任何方法来断开灰烬中的
  • Android Edittext 中输入类型为数字的多行是否可能?

    当android edittext输入类型为数字时 是否可以制作多行 我已经在 xml 文件中尝试过以下内容 android inputType number textMultiLine 但这没有用 当输入类型为数字时 是否无法制作多行 请
  • Jersey 2.0 的依赖注入

    在没有任何 Jersey 1 x 知识的情况下从头开始 我很难理解如何在 Jersey 2 0 项目中设置依赖项注入 我还了解到 HK2 在 Jersey 2 0 中可用 但我似乎找不到有助于 Jersey 2 0 集成的文档 Manage
  • 在 Android 中使用网络服务发现出现内部错误

    在第一次使用示例和 NSDManager 实现期间开发者页面上的教程 应用程序成功启动发现并找到设备 不过现在好像已经坏掉了 程序启动时 经过一番初始化后 代码进入如下方法并成功运行 public void discoverServices
  • 如何向 Outlook 发送富文本格式的电子邮件?

    通过分配 text html 内容类型字符串以 HTML 格式发送电子邮件 到 Outlook 非常有效 如下所示 using MailMessage message new MailMessage message From new Mai
  • 对数组字段执行更新时,无法使用字符串字段名称 [$] 附加到数组

    rowsI 尝试对记录数组中的每个字段执行 mongodb 更新 示例架构如下 id ObjectId 508710f16dc636ec07000022 summary uid ABCDEF username bigcheese name
  • 如何有选择地导入 ES2015 模块函数,但具有命名空间?

    我正在开始使用 Rollup 和 D3 版本 4 它是用 ES2015 模块编写的 我使用传统的 D3 命名空间 d3 编写了一些代码 现在我想使用 Rollup 创建自定义捆绑包 我想使用 tree shaking 因为我可能只使用 d3
  • 如何确保 Python while 循环需要特定的时间来运行?

    我正在用 while 循环读取串行数据 但是 我无法控制采样率 代码本身似乎需要 0 2 秒才能运行 所以我知道我无法比这更快了 但我希望能够精确控制采样速度 我觉得我可以使用 睡眠 来做到这一点 但问题是 在不同的点 循环本身可能需要更长
  • 检查 Firebase 中是否存在文档并根据图标返回

    我想检查 Firebase 集合中是否存在特定文档 据此 我的应用程序应该显示一个彩色图标或灰色图标 我试图用一个返回布尔值的方法来解决这个问题 在我的构建小部件中 我调用该方法并分配正确的图标 这是我检查文档是否存在的方法 checkIf
  • 设置自定义字体的自定义字体内存泄漏

    以下用于设置自定义字体的代码会减慢我的整个应用程序的速度 我该如何修改它以避免内存泄漏并提高速度并很好地管理内存 public class FontTextView extends TextView private static final
  • 使用递归的幂函数

    我必须用Java 编写一个power 方法 它接收两个整数 它们是正数还是负数并不重要 它的复杂度应该是O logN 它还必须使用递归 我当前的代码得到两个数字 但我一直输出的结果为零 我不明白为什么 import java util Sc
  • MVVM 中的控制器,如何从视图模型获取信息到它的控制器?

    我们正在使用 MVVM 模式构建一个应用程序 我们有使用 DI 连接所有视图和视图模型的控制器 我见过的所有 MVVM 示例都非常简单并且只有 1 个视图 视图模型如何 应该如何与控制器对话 控制器了解模型和视图 视图模型是否应该将事件发送
  • 如何复制包含除标识列之外的每一列的行 (SQL Server 2005)

    My code SELECT INTO t FROM CTABLE WHERE CID cid get data put into a temp table ALTER TABLE t DROP COLUMN CID remove prim
  • Java Hadoop Mapper 如何发送多个值

    我的映射器需要发送以下元组
  • 为什么 C++ 允许将整数赋给字符串?

    我今天在程序中遇到了一个有趣的情况 我无意中将一个无符号整数分配给了 std string VisualStudio C 编译器没有给出任何警告或错误 但我在运行项目时碰巧注意到了这个错误 它给了我的字符串垃圾字符 代码如下 std str
  • 使用 Python 将包含双引号的参数传递给子进程

    我正在寻找一种方法来将包含双引号的参数传递给 python 的子进程模块 而不需要转义双引号 当参数周围有引号时 我见过这个问题被问过几次 但答案通常是删除引号 我遇到的问题是引号是参数的一部分 必须传递给脚本 而不能在每个引号前添加反斜杠
  • 多维数组:运算符重载

    我有一个带有多维数组的类 可以使用此类创建一维 二维 n 维数组 如果数组有 n 维 我想使用 noperator 获取一个对象 例子 A a 2 2 2 2 a 0 1 1 0 5 但数组不是指针向量 它会导致其他向量等 所以我希望运算符
  • 通过注入 JavaScript 强制 React 触发事件

    我正在尝试做什么 我目前正在为 Web Whatsapp 编写一个小聊天机器人 我决定使用 chrome 扩展 因为 js 注入很容易 有一个语音消息按钮 当您开始输入内容时 该按钮会切换为发送文本的按钮 React 删除语音消息元素并呈现
  • 在 Laravel 4 中上传多个文件

    这是我用于上传多个文件的控制器代码 我正在从 Google Chrome 上的 postman rest API 客户端传递键和值 我正在从邮递员添加多个文件 但只有 1 个文件正在上传 public function post files