Почему опять ошибка с загруской файлов?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Почему опять ошибка с загруской файлов?

Сообщение Sergalas »

пытаюсь организовать загрузку файла xlsx. Вот контролер.

Код: Выделить всё

public function actionExcelparser(){
        $execelparser= new ParsersExcel();

        if ($execelparser->load(Yii::$app->request->post())){
            $execelparser->files = UploadedFile::getInstance($execelparser, 'files');
            $years=date('Y');
            $mounts=date('m');
            $path='files';
            foreach ($execelparser->files as $file) {
                $files_to = TransliteratorHelper::process($file->name, '', 'en');
                if ($execelparser->upload($path,$years,$mounts,$files_to)) {
                    $data = \moonland\phpexcel\Excel::import(Yii::getAlias('@frontend/web/').$path.'/'.$years.'/'.$mounts.'/'.$files_to);
                }
            }
                return $this->render('excelparser',[
                        'data'=>$data
                ]);
        }else{
            return $this->render('excelparser', [
                'model'     => $execelparser
            ]);
        }
    }
вот модель

Код: Выделить всё

<?php
namespace backend\models;

use Yii;
use yii\base\Model;
use backend\models\Parsers;


class ParsersExcel extends Model{
   public $files;
   //public $excel;
  public function rules()
    {
        return [
            [['files'], 'file','skipOnEmpty' => true, 'extensions' => 'xls, xlsx'],
        ];
    }
    public function upload($path,$years,$mounts,$files_to){
        if ($this->validate()) {
            if (file_exists(Yii::getAlias('@frontend/web/').$path.'/'.$years.'/'.$mounts.'/')) {
            } else {
                mkdir(Yii::getAlias('@frontend/web/').$path.'/'.$years.'/'.$mounts.'/', 0775, true);
            }
            $this->files->saveAs(Yii::getAlias('@frontend/web/').$path.'/'.$years.'/'.$mounts.'/'.$files_to);
            return true;
        } else {
            return false;
        }
    }
а вот такую ошибку он мне выдает
finfo_file(C:\OpenServer\userdata\temp\php9A6F.tmp): failed to open stream: No such file or directory
не подскажите почему? И как правильно организовать загрузку?
Ответить