1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Upload файла через ОтправитьДляОбработки

Тема в разделе "Базы данных и администрирование", создана пользователем xmailer, 10 авг 2007.

  1. xmailer

    xmailer Гость

    Репутация:
    0
    Может у кого есть пример реализации загрузки файла на хост. В моем случае:
    Код:
    	ЗаголовокHTTP = Новый Соответствие(); 
    ЗаголовокHTTP.Вставить("Host", "localhost"); 
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data"); 
    //ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); 
    ЗаголовокHTTP.Вставить("Content-Length", "2019"); 
    
    HTTP = Новый HTTPСоединение("localhost");
    HTTP.ОтправитьДляОбработки("c:\temp01.dbf", "i.phtml", "c:\out.txt", ЗаголовокHTTP);
    //HTTP.Записать("c:\temp01.dbf", "i.phtml", ЗаголовокHTTP);
    i.phtml
    Код:
    <?php
    print "<pre>";
    print_r($_POST);
    print_r($_FILES);
    print "</pre>";
    
    if($fp=fopen("out.txt", "wb")){
    fwrite($fp, "post: ".sizeof($_POST)."\n");
    fwrite($fp, "file: ".sizeof($_FILES)."\n");
    fclose($fp);
    }
    ?>
    на операции HTTP.ОтправитьДляОбработки все виснет, через длительное время ошибка выполнения ОтправитьДляОбработки
     
  2. Typhoon

    Typhoon Гость

    Репутация:
    0
    Твоя проблема в том что для 1с8 нада обязательно для HTTP соединения еще указать настройки прокси сервера иначе оно не будет работать.
     
  3. xmailer

    xmailer Гость

    Репутация:
    0
    Проблема точно не в этом, заменим часть кода
    Код:
    	ПроксиСервер = Новый ИнтернетПрокси();
    ПроксиСервер.НеИспользоватьПроксиДляЛокальныхАдресов = Истина;
    
    HTTP = Новый HTTPСоединение("localhost",,,, ПроксиСервер);
    1С в глубокой задумчивости
     
  4. bsa

    bsa Гость

    Репутация:
    0
     
  5. Pozitive

    Pozitive Гость

    Репутация:
    0
    Можно сделать лучше, таким макаром можно и архив передать, и символы удалять не нужно.
    Установите основной header, примерно так:

    Код:
    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
    Connection: keep-alive
    Content-Type: multipart/form-data; boundary=---------------------------69653007630741
    
    
    Добавить заголовки можно примерно так:
    
    ЗаголовокHTTP = Новый Соответствие(); 
    ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); 
    HTTP = Новый HTTPСоединение("localhost");
    HTTP.ОтправитьДляОбработки(ИмяПередаваемогоФайла,АдресРесурса,
    ИмяВыходногоФайла,ЗаголовокHTTP);
    Также нужно обернуть файлик, который будет отправлять, примерно так:
    Код:
    -----------------------------69653007630741
    Content-Disposition: form-data; name="filename2"; filename="post2_old.zip"
    Content-Type: application/zip
    
    СОДЕРЖИМОЕ АРХИВА
    -----------------------------69653007630741--
    PHP
    Код:
    if(count($_FILES) > 0) {
    
    if (strpos($system_folder, '/') === FALSE) {
    if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE){
    $system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
    }
    } else {
    $system_folder = str_replace("\\", "/", $system_folder);
    }
    
    foreach ($_FILES as $uploadFile) {
    $uploaded_file= $system_folder.'../system/in/offers/'.str_replace(' ', '', $uploadFile['name']);
    if (is_uploaded_file($uploadFile['tmp_name'])) {
    if (!move_uploaded_file($uploadFile['tmp_name'], $uploaded_file)) {
    die('Проблема: невозможно переслать файл в каталог назначения '.$uploaded_file);
    }
    } else {
    die('Error: file not transportet');
    }
    }
    echo "success\n";
    }
     
Загрузка...
Похожие Темы - Upload файла через
  1. Serduko
    Ответов:
    2
    Просмотров:
    632
  2. swyatogor
    Ответов:
    30
    Просмотров:
    1.704
  3. alxndr
    Ответов:
    3
    Просмотров:
    845
  4. Amfion
    Ответов:
    7
    Просмотров:
    883
  5. susinmn
    Ответов:
    1
    Просмотров:
    1.106

Поделиться этой страницей