Диалог выбора папки пользователем
Диалог выбора папки пользователем
Здравствуйте, форумчане. Хочу привязать к ActiveForm поле, которое позволяло бы выбрать путь на локальном диске пользователя и записать его в модель. В дальнейшем в эту папку планирую производить экспорт из БД. Подскажите, пожалуйста, каким способом можно организовать подобное (выбор папки)? Нужно что-то вроде диалога сохранения картинок в браузерах.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Диалог выбора папки пользователем
На чистом html+js никак. Ну и в папку не выгрузите, даже если ее вручную прописать.
Re: Диалог выбора папки пользователем
Файл-то куда выгрузка будет производится создать не проблема.. И если папку руками прописать все работает.. Хотелось просто для пользователя интерактивности добавить, чтобы он сам мог папку для сохранения выбрать себе.
проблема именно в задании поля $this->path не руками в коде, а самим пользователем
Код: Выделить всё
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;
}
}
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Диалог выбора папки пользователем
Так здесь вы сохраняете на сервере, а не на локальном диске пользователя.
Re: Диалог выбора папки пользователем
Не, ну если к примеру поставить в корень диска D, то норм сработает
Это потому-что сервер локальный? А так бы пришлось через http как-то действовать ?
Код: Выделить всё
$this->path = 'D:\\';
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49