Диалог выбора папки пользователем

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Диалог выбора папки пользователем

Сообщение long399 »

Здравствуйте, форумчане. Хочу привязать к ActiveForm поле, которое позволяло бы выбрать путь на локальном диске пользователя и записать его в модель. В дальнейшем в эту папку планирую производить экспорт из БД. Подскажите, пожалуйста, каким способом можно организовать подобное (выбор папки)? Нужно что-то вроде диалога сохранения картинок в браузерах.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Диалог выбора папки пользователем

Сообщение yiiliveext »

На чистом html+js никак. Ну и в папку не выгрузите, даже если ее вручную прописать.
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Диалог выбора папки пользователем

Сообщение long399 »

Файл-то куда выгрузка будет производится создать не проблема.. И если папку руками прописать все работает.. :? Хотелось просто для пользователя интерактивности добавить, чтобы он сам мог папку для сохранения выбрать себе.

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

public function export($users)
    {
        $this->path = Yii::getAlias('@app') . '\\export\\';
        $filename = $this->path . 'export_' . date('d.m.Y') . '.csv';
        
        $header = ['Фамилия', 'Имя', 'Отчество', 'ДатаРождения'];   // шапка для csv файла
        
        if (($handle = fopen($filename, 'w')) !== false) {
            fputcsv($handle, $header, $this->delimiter);    // запись в файл шапки

            foreach($users as $user){   // запись в файл инф-ии о пользователях
                $data = []; 
                $data[] = trim($user->userInfo->surname);
                $data[] = trim($user->userInfo->firstname);
                $data[] = trim($user->userInfo->secname);
                $data[] = $user->userInfo->birthday;

                fputcsv($handle, $data, $this->delimiter);
            }
            fclose($handle);
            Yii::$app->session->setFlash('success', 'Пользователи были успешно экспортированы в файл ' . $filename);
        }
        else {
            Yii::$app->session->setFlash('error', 'Ошибка при попытке создать csv файл.');
            return;
        }
    }
проблема именно в задании поля $this->path не руками в коде, а самим пользователем :(
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Диалог выбора папки пользователем

Сообщение yiiliveext »

Так здесь вы сохраняете на сервере, а не на локальном диске пользователя.
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Диалог выбора папки пользователем

Сообщение long399 »

Не, ну если к примеру поставить в корень диска D, то норм сработает

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

$this->path = 'D:\\';
Это потому-что сервер локальный? А так бы пришлось через http как-то действовать ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Диалог выбора папки пользователем

Сообщение yiiliveext »

long399 писал(а): 2019.09.24, 05:19 Это потому-что сервер локальный?
Именно так.
Ответить