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

Форум PHP

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

 

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

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

тема: Отправка файла методом POST из PHP программы
 
 автор: SergeZ   (13.05.2005 в 02:03)   письмо автору
 
 

Подскажите кто знает. Пытаюсь отправить файл jpg при помощи POST запроса из PHP скрипта. Использую формат multipart/form-data
Никак не могу понять - как "запихнуть" в тело POST запроса непосредственно сам файл с картинкой.
Примерный код с сокращениями выглядит вот так:


$image_path="путь к файлу на сервере";
$imagefile="имя  передаваемого файла";
$boundary="---------------------------asddfdgdfdasaedegf"; // произвольно выбранный разделитель частей
$nn="\r\n";

// Как формировать сам заголовок  POST запроса - описано везде подробно,  и
// здесь опускается


// формируем непосредственно тело запроса в перем $POSTData

$POSTData=" здесь идут различные поля иммитирующие передачу формы, необходимые разделители  итд".
$boundary.$nn.
"Content-Disposition: form-data; name=\"image_name\"".$nn.
$nn.$imagefile.$nn.
$boundary.$nn.
"Content-Disposition: form-data; name=\"image\"; filename=\"".$image_path.$imagefile."\"".$nn.
"Content-Type: image/jpeg".$nn.
$nn;

/* А вот здесь надо каким то образом добавить к телу запроса - содержимое передваемого файла - мой вопроос как раз в этом - как добавить.  


Подскажите!!!!

*/



$PostData.=$boundary."--".$nn; // добавляем к телу запроса последний разделитель.

   
 
 автор: SergeZ   (13.05.2005 в 12:13)   письмо автору
 
   для: SergeZ   (13.05.2005 в 02:03)
 

Ну неужели никто не знает? Или вопрос непонятен?

   
 
 автор: krot   (13.05.2005 в 20:44)   письмо автору
 
   для: SergeZ   (13.05.2005 в 12:13)
 

лана! вот тебе скрипт который закачивает фаил с клиента на сервер с рпомощь POST!
вот форма загружаемая к клиенту

<form action="load.php" method="post" enctype="multipart/form-data">
ввести имя фаила <input type="file" name="userfile"><br>
<input type="submit">
</form>

а ето сам скрипт для приема файла load.php

<?
if(copy($HTTP_POST_FILES["userfile"]["tmp_name"], "c:/temp/" $HTTP_POST_FILES["userfile"]["name"]))
{
echo(
"file successfully loaded");
}else{
echo(
"error : failed to load');
}
?>

   
 
 автор: cheops   (13.05.2005 в 20:49)   письмо автору
 
   для: krot   (13.05.2005 в 20:44)
 

Ему наоборот нужно: отправить при помощи метода POST на сервер файл. Я как то делал, но файл что-то так и не получилось у меня отправить, только обычные данные.

   
 
 автор: krot   (13.05.2005 в 20:53)   письмо автору
 
   для: cheops   (13.05.2005 в 20:49)
 

ну у меня и заливается фаил на сервер! там же порускинаписанно! форма - у клиента! он запихивает фаил и отправляет а сам скрипт принимает его и копиркут из в директорию "c:/temp/" из переменной где времмено хранится загруженный файл!!!!!!

   
 
 автор: cheops   (13.05.2005 в 21:46)   письмо автору
 
   для: krot   (13.05.2005 в 20:53)
 

Я так понимаю SergeZ хочет передать load.php файл методом POST не прибегая к HTML-форме и нажатию на кнопку - просто от скрипта к скрипту.

   
 
 автор: SergeZ   (13.05.2005 в 23:59)   письмо автору
 
   для: cheops   (13.05.2005 в 21:46)
 

Да именно так и надо. Если с формой - это проще паренной репы. А вот как из скрипта, не прибегая к формам? Никто не может подсказать.
Вернее не ясен только один момент как в тело запроса запихнуть содержание jpg файла.
В реальном запросе снятом снифером там идут вместо двоичных данных ASCII символы. ВИдимо надо как то содержимое jpg файла перекодировать, но как и что - не знаю

   
 
 автор: krot   (15.05.2005 в 00:04)   письмо автору
 
   для: SergeZ   (13.05.2005 в 23:59)
 

а какой смысл? зачем тебе ето? может можно предпринять вообще другие методы для достижения цели! обьясни зачем тебе ето или где ты ето хочешь применить!

   
 
 автор: cheops   (15.05.2005 в 12:45)   письмо автору
 
   для: krot   (15.05.2005 в 00:04)
 

Автоматическая обработка HTML-форм, иногда нужно оратиться к форме раз эдак 500, а это в ручную сложно.

   
 
 автор: SergeZ   (15.05.2005 в 16:19)   письмо автору
 
   для: krot   (15.05.2005 в 00:04)
 

Иногда бывает сложно представить где и что может понадобится другому программисту. И кажется что он - другой усложняет ( ввиду своей неопытности или незнания) задачу. Иногда так наверное и бывает, может быть и мой случай - такой же. Но пока я другого решения не нашел. А нужно мне вот, что:
Мне надо заслать на в базу данных другого( чужого) сайта порядка 10-15 тыс картинок - файлов изображений - которые хранятся у меня на сайте. Для этого на этом (чужом) сайте есть форма, что бы ручками по одному файлику отправлять. Понятно, что я не имею возможности что-то изменить на чужом сайте. Я запустил снифер и посмотрел что и как происходит при отправке одного - двух jpg файликов, при ручной отправке через браузер.
Теперь задача состоит в том что бы сделать все это программно, через формирования POST запроса и отправки картинки. Вот я и пытаюсь полностью сэмулировать такой запрос. Как только получится залить 1 картинку, то станет несложно отправить и любое количество файликов.

   
 
 автор: krot   (15.05.2005 в 00:07)   письмо автору
 
   для: SergeZ   (13.05.2005 в 12:13)
 

впервые с таким сталкиваюсь! если разрулишь как ето сделать, обьяснишь как! ОК?

   
 
 автор: cheops   (15.05.2005 в 12:48)   письмо автору
 
   для: SergeZ   (13.05.2005 в 02:03)
 

Вспомнил тему http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1324, там нет полного решения, но есть описание такого POST-запроса. Скорее всего данные следует закодировать base64_encode().

   
Rambler's Top100
вверх

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