[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сохранить файл
Telez
Добрый день
Мне нужно сохранить файл на локальном диске.
Т.е. после операций:
fopen(...)
fwrite(...)
fwrite(...)
fwrite(...)
fwrite(...)
....
fclose(...)

сохранить у себя на локальном диске.
Есть такая команда или функция?
Нужно ли использовать FTP?

Спасибо
YVSIK
сохраняй
тут никто не против, если что, заказывай сохраним тебе что по надумаешь, но это в другой теме.

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Guest
Цитата (YVSIK @ 17.12.2016 - 00:34)
сохраняй
тут никто не против


Он возможно имел ввиду, сохранят на сервер и одновременно на комп себе
walerus
Интересно как скрипт будет долбится на локалку...
- "извините простите, можно я тут файл покладу, наверное на диск Д, в папку довнлоадс"...

зы: если конечно локалка не стоит как сервер доступный по ввв
sergeiss
Telez, опиши понятнее (подробнее) что ты хочешь получить.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Telez
Я хотел бы, чтобы на клик по кнопке "Export", создавался бы файл с данными, и сгружался на мой ком. Т.е делал бы download.
FatCat
Цитата (Telez @ 17.12.2016 - 21:23)
и сгружался на мой ком. Т.е делал бы download.

Редирект в браузере на адрес файла?

_____________
Бесплатному сыру в дырки не заглядывают...
sergeiss
Цитата (Telez @ 17.12.2016 - 22:23)
Я хотел бы, чтобы на клик по кнопке "Export", создавался бы файл с данными, и сгружался на мой ком. Т.е делал бы download.

Это не просто. А очень просто :) Делаешь ссылку на загрузку. По ссылке делаешь загрузку файла. В скрипте-обработчике прописываешь такую штуковину, в самом начале (код я взял у себя из рабочего скрипта):
	header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$file_name");
header('Content-Transfer-Encoding: binary');

а затем делаешь вывод собственно содержимого файла. Кстати говоря, вовсе не обязательно этот файл записывать на диск! Можно создавать динамически, точно также, как ПХП-страницу. И тут же отдавать в поток.

В итоге при клике по ссылке у тебя в браузере появляется запрос на скачку файла. Указываешь, куда сохранить и сохраняешь. Переменная $file_name содержит то имя файла, которое увидит юзер при загрузке.
Существенно то, что текущая страница так и остается в браузере нетронутой, не перезагружается.

Профит!

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Telez
А когда подключится к ДБ?
Так не работает, получаю пустой фаил (dowload).
Но на сервер пишет файл с данными.

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename='export.csv'");
header('Content-Transfer-Encoding: binary');

include_once($_SERVER["DOCUMENT_ROOT"]."/inc/connect.php");

$query = "SELECT * FROM flat";
$apartments = mysql_query($query) or die(mysql_error());

$myfile = fopen("export.csv", "w") or die("Unable to open file!");

while($aprt = mysql_fetch_array($apartments))
{
$txt = $aprt['code'] . "," . $aprt['page_full_path'] . "\r\n";
fwrite($myfile, $txt);
}
fclose($myfile);
sergeiss
Цитата (Telez @ 18.12.2016 - 11:52)
Так не работает, получаю пустой фаил (dowload).
Но на сервер пишет файл с данными.

Еще раз повторяю:
Цитата (sergeiss @ 17.12.2016 - 23:09)
И тут же отдавать в поток.

Убери fwrite и все другие функции записи в файл, сделай тут вывод через echo и всё у тебя будет работать.
Пустой файл потому, что ты в него ничего и не пишешь :) Т.е., клиенту ничего не отправляешь.

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename='export.csv'");
header('Content-Transfer-Encoding: binary');

include_once($_SERVER["DOCUMENT_ROOT"]."/inc/connect.php");

$query = "SELECT * FROM flat";
$apartments = mysql_query($query) or die(mysql_error());

//$myfile = fopen("export.csv", "w") or die("Unable to open file!");

while($aprt = mysql_fetch_array($apartments))
{
$txt = $aprt['code'] . "," . $aprt['page_full_path'] . "\r\n";
//fwrite($myfile, $txt);
echo $txt;
}
//fclose($myfile);


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Telez
Замечательно! То, что и хотел. Большое спасибо!
sergeiss
Цитата (Telez @ 18.12.2016 - 14:16)
Замечательно! То, что и хотел.

Да и пользуйся на здоровье smile.gif

Вообще говоря, таким же образом можно отправлять и уже готовые, ранее созданные файлы. Но при этом ты можешь добавить функционал по контролю за скачиванием:
- есть ли право на закачку этих данных у данного юзера,
- не истек ли период, когда есть разрешение на закачку
- ... да и мало ли, что еще можно придумать...

Плюс к этому, если подготовка данных занимает какое-то заметное время, то можно с помощью кук и JS организовать процесс информирования юзера о подготовке данных.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Telez
Благодарю
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.