Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файла по http без формы и бровзера
 
 автор: tuder   (27.10.2008 в 15:32)   письмо автору
 
 

Интересует загрузка файла на сервер как раз по http, но без формы. :-)

Т.е. пишется программа с запросом к скрипту на сайте.
Должна передать скрипту (видимо через GET) имя файла на локальном диске,
скрипт должен залить этот файл на сервер.
Возможно ли такое?

Как должен выглядеть передаваемый скрипту запрос и как (хотя бы в общих чертах) должен выглядеть скрипт?
Главное, чтобы инициировалась и произошла передача файла на сервер. Дальше-то всё понятно.

http://www.xserver.ru/computer/sredaprogr/msvb/32/

Бровзер же может загружать файл на сервер.
Почему бы иной программе это не сделать?
При этом, как сказано по вышеуказанной ссылке, после нажатия кнопки бровзер формирует строку запроса передаваемую на сервер.

Так вот как это должно вглядеть?

Программа на vb будет на локальном компьютере.
Может открыть/считать страницу с сервера.
Пусть, скажем, там будет форма. Её надо заполнить и отправить назад.
Атоматически из программы, а не руками из браузера.

Но, похоже, что файл не укажешь автоматом. Я тут параллельно лопачу поиск:
http://www.gotdotnet.ru/Forums/Web/26823.aspx
"Заполнять поле ввода файла в HTML форме невозможно. Это ограничение DOM IE. Происходит это из соображений безопасности."

Но вроде мне как-то попадалась программа для заполнения форм на бесплатных досках объявлений. Там вроде можно было указать фото на локальном диске и она вколачивала их в форму и отправляла. Хотя могу и ошибаться.

В моём случае есть возможность и разместить скрипт на сервере и написать программу для клиентской части.

Собственно нужна возможность загрузки файла на сайт по http. Может есть ещё какие-то решения, кроме того, как передавать его кусками по 250 байт в запросе скрипту...

Просто нужно сделать возможность автоматической заливки файла на сервер клиенту с выходом в инет только по http:80

  Ответить  
 
 автор: Trianon   (27.10.2008 в 15:36)   письмо автору
 
   для: tuder   (27.10.2008 в 15:32)
 

>Интересует загрузка файла на сервер как раз по http, но без формы. :-)
>Т.е. пишется программа с запросом к скрипту на сайте.
>Должна передать скрипту (видимо через GET) имя файла на локальном диске,
>скрипт должен залить этот файл на сервер.
>Возможно ли такое?

Скрипт-то зальет. Только почему через GET?
Файлы передаются запросом POST (а если более точно - его методом кодирования multipart/form-data)

  Ответить  
 
 автор: sim5   (27.10.2008 в 15:43)   письмо автору
 
   для: tuder   (27.10.2008 в 15:32)
 

Я, например, ни за что не буду разрешать заупуск у себя вашего VB-скрипта, а уж тем более устанавливать какую-то вашу программу. И также поступит любой благоразумный.

  Ответить  
 
 автор: tuder   (28.10.2008 в 05:18)   письмо автору
 
   для: sim5   (27.10.2008 в 15:43)
 

>Я, например, ни за что не буду разрешать заупуск у себя вашего VB-скрипта

Я и не настаиваю. :-)

Тем более, уже сказал, что это не серверный VB-скрипт. Это клиентская программа.
Хоть на VB, хоть на дельфи.
А на сервере скрипт на php.

Вот и не найду, сразу скрипт должен принимать POST-параметры как-то, или сам что-то должен генерить.

Какой запрос или "multipart/form-data" должен формироваться и на какой стороне.

Серверной или локальной.

>Если речь идет о "Нет. Программа на локальном компьютере.", то при чем тут браузер - пишите на чем хотите свою программу. Но если браузер, то только поле типа file формы. И чем этот способ вас не устраивает?

Может и устраивает. Вопрос как это реализовать практически.

  Ответить  
 
 автор: sim5   (28.10.2008 в 05:41)   письмо автору
 
   для: tuder   (28.10.2008 в 05:18)
 

Вы это только для себя создаете? Тогда какие могут быть вопросы - пишите на чем угодно. Если же это для клинтов ваших - забудьте сразу. Работать с клиентом, значит извещать его о том чего вы хотите от него, либо что он может делать. Как вы себе представляете "скрытую" от пользователя загрузку файлов? Вы что знаете где и какие файлы у меня на компьютере лежат? Или вы знаете какой именно файл я хочу вам загрузить?

Не надо никаких скриптов, достаточно обыкновенной HTML формы:
<form action="scriptname.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile">
<input type="submit" name="sender" value="Send">
</form>

А в файле обработчике формы scriptname.php получить:
$_FILES['upfile']['атрибуты']. Что означают "атрибуты", читать тут.

  Ответить  
 
 автор: tuder   (31.10.2008 в 14:54)   письмо автору
 
   для: sim5   (28.10.2008 в 05:41)
 

:-)

Ну ёлы-палы.

Вы рассматриваете и объясняете мне совсем с другой стороны.
Как сделать форму и обработать - я знаю.

Скажем так. Я знаю, где какой файл у меня лежит.
Мне нужно какой-то файл загружать на сервер автоматически.
Мне нужно загружать этот файл по http-протоколу, так как остальное всё запрещено.
Мне нужно загрузить этот файл из самописанной программы, а не через бровзер руками.
На сервере должен лежать скрипт, который обработает принятый файл.

Какой комбинацией буковок и циферок можно инициировать отправку файла на сервер?
Что происходит в момент нажатия кнопки "Send" в обычной форме на страничке?
Как мне эмулировать эту форму и нажатие?

  Ответить  
 
 автор: sim5   (31.10.2008 в 15:16)   письмо автору
 
   для: tuder   (31.10.2008 в 14:54)
 

Ну ёлы-палы... Вы это чисто для себя делаете? Пишите на C, Delphi, на чем хотите, что знаете. Как работать с файлами в том или ином языке, читайте в мануале. Я просто не понимаю, чего вам конкретно надо. А сделать отправку формы "не руками" можно и в JS - formName.submit(). Только вот атрибут value поля file формы, только для чтения, понимаете это?

  Ответить  
 
 автор: Trianon   (31.10.2008 в 16:05)   письмо автору
27 байт
 
   для: tuder   (31.10.2008 в 14:54)
 

Вот пример запроса, отправляемого браузером.
Чтобы далеко не ходить - прямо из формы отправки сообщений в этом форуме.

POST /forum/addpost.php?id_forum=1&id_theme=59354&id_post=346807 HTTP/1.1
Host: softtime.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://softtime.ru/forum/addpost.php?id_forum=1&id_theme=59354&id_post=346807
Cookie: lineforum=set_line_forum; wrdp=***********************; current_author=Trianon; PHPSESSID=***********************
Content-Type: multipart/form-data; boundary=---------------------------12881129029233
Content-Length: 1316
-----------------------------12881129029233
Content-Disposition: form-data; name="personally"


-----------------------------12881129029233
Content-Disposition: form-data; name="sid_add_theme"

9665544a662fee7ce8accb75791f2ade
-----------------------------12881129029233
Content-Disposition: form-data; name="author"

Trianon
-----------------------------12881129029233
Content-Disposition: form-data; name="pswrd"

***********************
-----------------------------12881129029233
Content-Disposition: form-data; name="message"

Вот пример запроса, отправляемого браузером. 
Чтобы далеко не ходить - прямо из формы отправки сообщений в этом форуме.
[code]

[ /code]
-----------------------------12881129029233
Content-Disposition: form-data; name="attach"; filename="test.txt"
Content-Type: text/plain

this is a sample
of file

-----------------------------12881129029233
Content-Disposition: form-data; name="send"

Отправить
-----------------------------12881129029233
Content-Disposition: form-data; name="id_theme"

59354
-----------------------------12881129029233
Content-Disposition: form-data; name="id_post"

346807
-----------------------------12881129029233
Content-Disposition: form-data; name="id_forum"

1
-----------------------------12881129029233--




Сам файл test.txt содержит две строчки
this is a sample
of file

  Ответить  
 
 автор: tuder   (05.11.2008 в 06:38)   письмо автору
 
   для: Trianon   (31.10.2008 в 16:05)
 

Во. Спасибо. Буду пробовать.
А то прокопал интернет на предмет софта, который бы заголовок перехватывал.
Да ничего бесплатного не нашёл работоспособного.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования