Yii2.0中如何通过POST API上传文件到服务器?

2024-01-04

我通过此链接在 yii2 中制作了一个模型http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html我使用 POST 请求将文件发布到 API,并在控制器中获取了所有文件信息,但无法使用使用上述链接创建的 Yii2.0 模型上传文件,正常的 PHP 文件上传代码工作正常。 这是我的控制器代码

public function actionUploadFile()
    {
        $upload = new UploadForm();
        var_dump($_FILES);

        $upload->imageFile = $_FILES['image']['tmp_name'];
        //$upload->imageFile = $_FILES;
        var_dump($upload->upload());
    }

我的模型代码是

class UploadForm extends Model
    {
    /**
     * @var UploadedFile
     */
    public $imageFile;

    public function rules()
    {
        return [
            [['imageFile'], 'safe'],
            [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg'],
        ];
    }

    public function upload()
    {
        try {
            if ($this->validate()) {
                $this->imageFile->saveAs('/var/www/html/' . $this->imageFile->baseName . '.' . $this->imageFile->extension);
                var_dump("Jeree");
                return true;
            } else {
                var_dump($this->getErrors());
                return false;
            }
        }catch (ErrorException $e) {
            var_dump($e->getMessage());
        }
    }
    }

试试这个方法

public function actionUpload()
{
   $model = new UploadForm();

   if (Yii::$app->request->isPost) {
       $model->file = UploadedFile::getInstance($model, 'file');

       if ($model->validate()) {                
          $model->file->saveAs('/var/www/html/' . $model->file->baseName . '.' . $model->file->extension);
       }
    }

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

Yii2.0中如何通过POST API上传文件到服务器? 的相关文章

  • 如何从 AES 加密字符串添加/删除 PKCS7 填充?

    我正在尝试使用 128 位 AES 加密 ECB 来加密 解密字符串 我想知道如何添加 删除 PKCS7 填充 看起来 Mcrypt 扩展可以处理加密 解密 但必须手动添加 删除填充 有任何想法吗 让我们来看看 RFC 5652 加密消息语
  • Web.config 将所有路径重定向到index.php - 不起作用

    我主要使用 Apache 和 htaccess 但我目前正在开发一个托管在 Windows 服务器上的网站 Web config 给我带来了很多问题 我试图将所有 URL 请求重定向到 index php 以便 PHP 脚本可以解析 URL
  • LinkedIn Groups API - 在单个 API 请求中获取多个群组的群组徽标

    Using LinkedIn 群组 API http developer linkedin com documents groups api 我正在显示用户在 LinkedIn 上所属的组列表 使用以下命令可以清楚地在一次调用中获取组列表
  • Laravel 5 Auth 注销不起作用

    当我使用内置身份验证并尝试在以下位置注销用户时 auth logout 它没有像希望的那样工作 它似乎让用户保持登录状态 但是当我清除浏览器缓存时 我可以看到实际上已经将用户注销了 我在页面上没有收到任何错误 在日志文件中也没有收到任何错误
  • 如何从 IIS 7.5 中的 PHP 页面诊断内部服务器错误 (HTTP 500)

    我正在尝试获取在我的本地开发计算机 带有 IIS 7 5 的 Windows 7 64 位 上运行的 aMember 会员管理系统的试用副本 我有 MySQL 5 5 10 和 PHP 5 3 6 后者是我使用 Windows 安装程序包安
  • PHP - 存储和计算无线电输入的总分

    我设计了一个基于网络的小型系统 其中有一个学校评估表 可以向可以访问该系统的特定用户询问一些问题 并且输入将是单选类型 1或2或3或4 该代码正在运行 可以将输入插入数据库 但我不知道计算总分并将其存储在数据库中的正确查询 这是当前正在运行
  • 枚举 PHP DOMDocument 对象的已注册命名空间

    对于我的一个项目 我正在使用DOMDocument类来加载和操作 XML 文档 我需要检索文档中使用的每个名称空间 但是 我找不到如何做到这一点 这DOMDocument类具有获取 URI 的命名空间前缀或命名空间前缀的 URI 的方法 但
  • 使用ip地址访问时删除index.php

    我在服务器上上传了 codeigniter 项目 从 URL 中删除 index php 不起作用 我使用IP地址访问它 喜欢http ip http ip地址 下面是我的htaccess
  • PHPUnit RabbitMQ:为创建连接函数编写测试

    我面临以下问题 我编写了一个函数 根据所需参数创建连接对象 AMQPConnection 现在我想编写相应的单元测试 我只是不知道在没有运行 RabbitMQ 代理的情况下如何做到这一点 这是有问题的函数 public function g
  • php simpleXMLElement 到数组:空值

    我有以下 XML
  • JSON 为 foreach() 提供的参数无效

    我在从 JSON 检索数据时遇到一些问题 它总是说为 foreach 提供的参数无效 这是 url php 中的 JSON nama IT SERVICE SOLUTION nilai 0 periode 11 tahun 2014 nam
  • 如何修复网站 iframe 错误?

    当我访问此网址时 警告 推荐使用一些广告拦截器 网页链接加载良好 没有错误 但是 当我尝试通过加载同一页面时iframe在我的html代码中 出现错误 我的html代码
  • 覆盖默认标识符生成策略对关联没有影响

    交响乐 2 7 2 学说 ORM 2 4 7 MySQL 5 6 12 PHP 5 5 0 我有一个具有自定义 ID 生成器策略的实体 它工作完美 在某些情况下 我必须使用 手工制作 的 ID 来覆盖此策略 当主实体在没有关联的情况下被刷新
  • 从 XML 节点 PHP DOM 中删除所有子节点

    我想使用 PHP DOM 从 XML 节点中删除所有子节点 以下之间有什么区别 A while parentNode gt hasChildNodes parentNode gt removeChild parentNode gt chil
  • Magento - 当我的订单取消或退款时如何运行代码

    如果订单被取消或退款 我的支付模块需要向支付服务发送通知 我假设订单页面 在管理后端 上的 取消 按钮将取消订单 而 贷项通知单 按钮 创建发票后 将退还订单 如何针对这些事件运行我的代码 我尝试在付款方式模型中使用 cancel 方法 但
  • 如何使用 Laravel Eloquent 返回多重关系?

    我有一张桌子叫users 每个用户都有不同的事情 country device computer category 我为上述每一个 事物 创建了一个表格 类似如下 1 United States 2 United Kingdom 3 Aus
  • Laravel 作业推送至 Amazon SQS 但未处理

    我正在运行 Laravel 5 3 我正在尝试测试队列作业 并且我已将队列配置为使用 Amazon SQS 我的应用程序能够将作业推送到队列中 并且我可以在 SQS 中看到该作业 但它留在那里 从未被处理 我尝试过跑步php artisan
  • 运行没有扩展名的 PHP 页面

    我想在 apache Web 服务器上运行我的 PHP 网页 而不需要 php扩大 所以我添加了以下代码 RewriteEngine on RewriteBase Rewritecond REQUEST URI NC RewriteRule
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月

随机推荐