Загрузка текста в textarea
Подскажите, пожалуйста, как сделать скрипт, который загружал бы текст из текстового файла, Который находится не на сервере, а на жестком диске пользователя, в textarea не прибегая к ctrl+c ctrl+v? Тоесть пользователь дожлен нажать на кнопочку обзор, выбрать файл и его содержимое должно оказаться в textarea. Подсказку вашу я очень хотел бы увидеть в виде скрипта, т.к. сам я в этом деле почти ничего не понимаю:( Заранее очень благодарен...
И еще сразу вопросик: а можно вызвать какую-то php или java-функцию, котороя вызывала бы горячие клавиши, которые по умолчанию стоят в браузере (например, ctrl+v - тобишь чтобы при нажатии на какую-то ссылку в textarea вставлялось содержимое буфера)?
Доброе время суток.
Подскажите, пожалуйста, как сделать скрипт, который загружал бы текст из текстового файла, Который находится не на сервере, а на жестком диске пользователя, в textarea не прибегая к ctrl+c ctrl+v? Тоесть пользователь дожлен нажать на кнопочку обзор, выбрать файл и его содержимое должно оказаться в textarea. Подсказку вашу я очень хотел бы увидеть в виде скрипта, т.к. сам я в этом деле почти ничего не понимаю:( Заранее очень благодарен...
И еще сразу вопросик: а можно вызвать какую-то php или java-функцию, котороя вызывала бы горячие клавиши, которые по умолчанию стоят в браузере (например, ctrl+v - тобишь чтобы при нажатии на какую-то ссылку в textarea вставлялось содержимое буфера)?
Нет и Нет
Ничего из того что ты сказал сделать к сожалению, а может и к счастью нельзя.
Во первых html И javascript не умеются работать с файлами, так что их отображение невозможно.
Хочешь узнать почему к счастью? Если бы это было возможно ХАЦСКИЕ проги было бы писать ЭЛЕМЕНТАРНО.
Я бы одним скриптом на javascript и php стащил бы с твоего компа любой файл))
Второе PHP делать не может, очень многие не могут понять что PHP это серверный язык, он вообще ничего не может делать с клиентским компом...
А что касается комбинации клавиш... Ответить конктрено не могу, но вроде тоже нет.. Однако недавно видел на javascript вставку из буфера.. так что могу и ошибатся))
Кстати вставка из буфера)) ВАЩЕ МАЗА)))
Эта дыра(а может и не дыра вовсе) позволила мне прочитать буфера ВСЕХ КЛИЕНТОВ моего сайта=))) А ты говоришь файл...
Хочешь чтобы можно было тырить файлы?)))
23D Bob Ты вопрос читал? НЕ юзать хот кеи. В качестве намёка или рекомендации можешь подгружать их через php и им же выводить. В том скрипте что его выводит ты после вывода этот файл грохаешь. Если нужны более подробные объяснения, обращайся.
Где ты наешь НЕ ЮЗАТЬ хот кеи?:) Кажется ты вопрос не прочитал)
в textarea не прибегая к ctrl+c ctrl+v? Тоесть пользователь дожлен нажать на кнопочку обзор, выбрать файл и его содержимое должно оказаться в textarea.
Примерно вот тут:)
Примерно вот тут:)
А я что не так ответил на вопрос? Я сказал это сделать невозможно) И объяснил почему))
А про буфер это вообще использование не хоткея, а системный вызов))
И я просто в тему вспомнил))
Внимательно перечитай как я ответил))
А я что не так ответил на вопрос? Я сказал это сделать невозможно) И объяснил почему))
А про буфер это вообще использование не хоткея, а системный вызов))
И я просто в тему вспомнил))
Внимательно перечитай как я ответил))
У тебя в ответе промелькнуло "использование горячих клавишь" или что-то в этом роде.. Но вот по поводу невозможно отобразить текстовый файл... Я скорее отвечал на это, что возможно. Как? Привёл пример.
У тебя в ответе промелькнуло "использование горячих клавишь" или что-то в этом роде.. Но вот по поводу невозможно отобразить текстовый файл... Я скорее отвечал на это, что возможно. Как? Привёл пример.
Так он и спрашивал, как реализовать ПРОГРАММНО нажатие горячих клавиш)) Видишь, это ты вопрос плохо прочитал) А насчет вставки файла через БРАУЗЕР в textarea я бы хотел сейчас услышать еще разок, ответь теперь мне)
Так он и спрашивал, как реализовать ПРОГРАММНО нажатие горячих клавиш)) Видишь, это ты вопрос плохо прочитал) А насчет вставки файла через БРАУЗЕР, я очень хачу УЗНАТЬ сам)
Тебе объяснить как файл на сервер загрузить? Или как определить имя этого файла? Может как его потом прочитать и unlink ему сделать? Какой из этих пунктов непонятен, объясню.
PS Что это надо реализовать только на JavaScript я не вижу.
Тебе объяснить как файл на сервер загрузить? Или как определить имя этого файла? Может как его потом прочитать и unlink ему сделать? Какой из этих пунктов непонятен, объясню.
PS Что это надо реализовать только на JavaScript я не вижу.
Объясни как отобразить содержимое файла в textarea на клиентской машине. Использование только JAVAscript так как это делается через браузер)
Хотя... я вспоминаю что есть такая маза как ActiveX и тихо замолкаю... Ибо на нем можно всё)
Ты не понел фишки... Чел хочет перед тем как файл загрузить на сервер чтобы этот файл отобращился в textarea. Какое тут нафих PHP ?
пользователь дожлен нажать на кнопочку обзор, выбрать файл и его содержимое должно оказаться в textarea.
Объясни как отобразить содержимое файла в textarea на клиентской машине. Использование только JAVAscript так как это делается через браузер)
Хотя... я вспоминаю что есть такая маза как ActiveX и тихо замолкаю... Ибо на нем можно всё)
Ты не понел фишки... Чел хочет перед тем как файл загрузить на сервер чтобы этот файл отобращился в textarea. Какое тут нафих PHP ?
Хватит флудить, где ты увидел в первой части вопроса слово JavaScript или что-то похожее? Просто я его в упор не вижу. Выдели пожалуйста.
Хватит флудить, где ты увидел в первой части вопроса слово JavaScript или что-то похожее? Просто я его в упор не вижу. Выдели пожалуйста.
пользователь дожлен нажать на кнопочку обзор, выбрать файл и его содержимое должно оказаться в textarea.
Про загруззку файла на сервер ничего не сказано.
Объясни как отобразить содержимое файла в textarea на клиентской машине. Использование только JAVAscript так как это делается через браузер)
Хотя... я вспоминаю что есть такая маза как ActiveX и тихо замолкаю... Ибо на нем можно всё)
Ты не понел фишки... Чел хочет перед тем как файл загрузить на сервер чтобы этот файл отобращился в textarea. Какое тут нафих PHP ?
Так он пройдёт через сервер и потом там окажеться, а сам файл удалиться. Не вижу проблем. По поводу ActiveX... У тебя самого то он включён? Лично я его вырубаю первым делом и поверь мне, я не одинок.
Про загруззку файла на сервер ничего не сказано.
А где ты видел кнопочку "обзор" для JavaScript? И тогда обьясни мне, что она делает, как не подгружает на сервер? И ещё я так же не увидел не загружая файл на сервер :)
Так он пройдёт через сервер и потом там окажеться, а сам файл удалиться. Не вижу проблем. По поводу ActiveX... У тебя самого то он включён? Лично я его вырубаю первым делом и поверь мне, я не одинок.
Остановимся на том что человек некоректно задал вопрос)
а что такое ActiveX я "вообще незнаю", т.е. в плане им не страдаю т.к. в Mozilla он не поддерживается по умолчанию)
Остановимся на том что человек некоректно задал вопрос)
а что такое ActiveX я "вообще незнаю", т.е. в плане им не страдаю т.к. в Mozilla он не поддерживается по умолчанию)
Да, наверное ты прав. Пусть сам решает, что ему нужно:)).
shaelf, ты говорил, что можно сначала загрузить файл на сервер, потом прочитать, потом удалить... А смогешь это показать в виде кода?:) Потому-что я сам не силен в этом, а скрипт очень нужен...
Кстати параллельный вопрос: а из textarea не прибегая к банальному копированию текст сохранить можно? Я так понимаю, это выглядило бы примерно так: текст сохраняется на сервере, потом этот файл скачивается... наверное лучше никак не выйдет... только вот опять-таки как это будет в виде кода выглядеть?
Ребят, по-моему я вполне корректно задал вопросы и даже нашел где-то между вашими спорами какие-то правильные мысли по поводу первого вопроса.
shaelf, ты говорил, что можно сначала загрузить файл на сервер, потом прочитать, потом удалить... А смогешь это показать в виде кода?:) Потому-что я сам не силен в этом, а скрипт очень нужен...
Кстати параллельный вопрос: а из textarea не прибегая к банальному копированию текст сохранить можно? Я так понимаю, это выглядило бы примерно так: текст сохраняется на сервере, потом этот файл скачивается... наверное лучше никак не выйдет... только вот опять-таки как это будет в виде кода выглядеть?
Какой язык программирования?
Какой язык программирования?
Спорю, что PHP:)
Спорю, что PHP:)
Я больше не хачу спорить))) Чет мы с тобой разошлись маленько не по детски)
Пиши лучше челу как файлы грузить, у меня то не спрашивали. К тебе вопрос был, давай строчи код
переменной $_FILES;
$tmp = $_FILES['file']['tmp_name'];
$dir = "tmp/";
$name = time();
if(move_uploaded_file($tmp, $dir.$name)) {
$text = file($dir.$name);
}
?>
<html>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Добавить">
<textarea cols="20" rows="20">
<?
if(isset($text)) {
for($i=0; $i<count($text); $i++) {
echo $text[$i];
}
unlink($dir.$name);
}
?></textarea>
</form>
</body>
</html>
Немного кривоват, но я думаю пойдёт:)
$tmp = $_FILES['file']['tmp_name'];
$dir = "tmp/";
$name = time();
if(move_uploaded_file($tmp, $dir.$name)) {
$text = file($dir.$name);
}
?>
<html>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Добавить">
<textarea cols="20" rows="20">
<?
if(isset($text)) {
for($i=0; $i<count($text); $i++) {
echo $text[$i];
}
unlink($dir.$name);
}
?></textarea>
</form>
</body>
</html>
Забавно, я тоже всегда использую time() для создания уникальных файлов(думал я один такой умный)))) Хотя в пхп есть для этого отдельная функция, но я её чет запомнить не могу)))
И кстати, по-моему тут надо указывать полный путь
move_uploaded_file($tmp, $dir.$name)
То есть tmp/name не пойдет... Я помню очень долго понять не мог почему файлов не было, а когда стал указывать полный путь всё стало на свои места...
Забавно, я тоже всегда использую time() для создания уникальных файлов(думал я один такой умный)))) Хотя в пхп есть для этого отдельная функция, но я её чет запомнить не могу)))
Только вот я попытался загрузить в него большой sql файл (база данных форума) и вместо того, чтобы загрузиться в текстовое поле он загрузился на саму страницу... На ней сменился цвет фона, появились всякие кнопки и т.д. Я надеюсь от этого как-то можно избавиться?
И еще появляется нотис: Undefined index: file in ... on line 2. Я конечно понимаю, что это не так важно, но он на чтго-то жалуется, может это как-то можно убрать?
Большое спасибо, вроде работает=)
Только вот я попытался загрузить в него большой sql файл (база данных форума) и вместо того, чтобы загрузиться в текстовое поле он загрузился на саму страницу... На ней сменился цвет фона, появились всякие кнопки и т.д. Я надеюсь от этого как-то можно избавиться?
htmlspecialchars(), после того как поймешь что загрузился он как раз в текстовое поле, просто что-то произошло :D надеюсь ты уже понял что.
А по поводу сохранения из textarea что скажете? Возможно?
Я себе это так представляю: текст из textarea сохраняется на сервере, потом как-то ссылка на него сама нажимается ( =) ) и файл скачивается... а как это опять-таки в виде кода будет выглядеть?=)
Да, действительно, мог бы и сам догадаться:) Спасибо.
А по поводу сохранения из textarea что скажете? Возможно?
Я себе это так представляю: текст из textarea сохраняется на сервере, потом как-то ссылка на него сама нажимается ( =) ) и файл скачивается... а как это опять-таки в виде кода будет выглядеть?=)
Набросаю образно, так как времени нету. Потом сиди и ковыряй.
text.php
<textarea name="text"><textarea>
<input type="submit" value="Забрать">
</form>
send.php
$text_file = time().".doc";
$file = fopen($text_file, "w+");
fwrite($file, $text);
fclose($file);
header("location:$text_file");
Только в этом случае я тебе оставил самому подумать как его удалять после загрузки (не вредный я, просто времени думать нету).
Набросаю образно, так как времени нету. Потом сиди и ковыряй.
text.php
<textarea name="text"><textarea>
<input type="submit" value="Забрать">
</form>
send.php
$text_file = time().".doc";
$file = fopen($text_file, "w+");
fwrite($file, $text);
fclose($file);
header("location:$text_file");
Только в этом случае я тебе оставил самому подумать как его удалять после загрузки (не вредный я, просто времени думать нету).
Спасибо, отлично работает:) А как реализовать удаление файла с сервера - я сам догадаться не могу:( Я ж плохо язык знаю... Можно было указать функции unlink, чтобы она срабатывала через какое-то время, но так вроде нельзя... Да и вообще если человек сохранил файл, то он по логике должен будет закрыть браузер, а если сессия окончена, даже если получилось бы указать время удаления, то функция разве сработает?
Так что я, к сожалению, сам с этой задачей не справлюсь, помоги уж в последний раз:)
Спасибо, отлично работает:) А как реализовать удаление файла с сервера - я сам догадаться не могу:( Я ж плохо язык знаю... Можно было указать функции unlink, чтобы она срабатывала через какое-то время, но так вроде нельзя... Да и вообще если человек сохранил файл, то он по логике должен будет закрыть браузер, а если сессия окончена, даже если получилось бы указать время удаления, то функция разве сработает?
Так что я, к сожалению, сам с этой задачей не справлюсь, помоги уж в последний раз:)
ну можно например так: есть каталог в котором хронятся только эти файлы... и когда пользователь обнавляет окно с текстареа... или заходит другой пользователь то проверяется этот каталог
bool is_file(string $filename)
и удаляются все файлы... а что бы не было конфликта когда находятся на одной странице несколько пользователей есть функция которая "запирает" файл для опираций.
хотя если честно то мне не очень нравиться эта идея... почему бы не подумать о БД?
while(false!==($file = readdir($dir))) {
if($file == "." || $file == "..") continue;
unlink($file);
}
$text = $_POST['text'];
$text_file = time().".doc";
$file = fopen($text_file, "w+");
fwrite($file, $text);
fclose($file);
header("location:$text_file");
только учти, в этом каталоге должны сохраняться только временные файлы и только этого текста. Тут есть один минус. Последний файл будет остоваться всегда в этой папке. У тебя 2 выхода:
1. Попытаться что-то придумать самому (или подождать пока у меня появиться немного времени).
2. Вытащить этот кусочек скрипта и поставить на выполнение каждые 5 минут через корн.
Что лучше - решать тебе.
Мне не к спеху, пожалуй я лучше подожду, пока у тебя появится время:)
Вот, держи. Не совсем удобные, но работают.
session_start();
if(isset($_SESSION['doc'])) {
$doc = $_SESSION['doc'];
unlink($doc);
unset($_SESSION['doc']);
} ?>
<html>
<body>
<form action="send.php" method="post">
<textarea name="text"></textarea>
<input type="submit" value="Забрать">
<input type="button" value="Удалить" onClick="location.reload()">
</form>
</body>
</html>
и второй
$path = "tmp/";
$text = $_POST['text'];
$text_name = time().".doc";
$text_file = $path.$text_name;
$file = fopen($text_file, "w+");
fwrite($file, $text);
fclose($file);
$_SESSION['doc'] = $text_file;
header("location:$text_file"); ?>
вот, при перезагрузки странички он удаляет файл (или при нажатии кнопочки "Удалить" хотя это однот и то же). Должно работать.
Если лень поискать то @$some_var[int some ind]
Чего поискать?
shaelf, спасибо, вроде все работает:)
пжста.
Указываю путь к созданой мной папке path/tmp, там действительно нет файлов. А вот в корневой папке эти файлы почему-то сохраняются.
shaelf, ты знаешь, я поторопился сказать, что все работает.
Указываю путь к созданой мной папке path/tmp, там действительно нет файлов. А вот в корневой папке эти файлы почему-то сохраняются.
Ты путь правильно указал? Т.е. path/tmp/? Или просто path/tmp?