Архив метки: загрузка файла

1С: передача файла с клиента на сервер, управляемое приложение

Ситуация: пользователь на клиенте выбирает файл, и его нужно обработать. Удобнее всего это сделать на сервере, т.к. на клиенте многие функции и процедуры не доступны. Реализовать это возможно помещение данных во временное хранилище, а далее из него, при вызове серверной процедуры, «обратное» изьятие. Например реализовать это можно как-то вот так:

&НаКлиенте
Процедура ЗагрузитьSonex()
	
	БинарныйФайл = Новый ДвоичныеДанные(Объект.ИмяФайла);
	сообщить("-помещаем во временное хранилище");
	АдресВХ = ПоместитьВоВременноеХранилище(БинарныйФайл,ЭтаФорма.УникальныйИдентификатор);	
	ОбработатьНодХМЛНаСервере(АдресВХ,объект.ГруппаЗагрузки);
	
	сообщить("-ок");
	
КонецПроцедуры

&НаСервере
Процедура ОбработатьНодХМЛНаСервере(АдресВХ,владелец);
	сообщить(АдресВХ);
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВХ);
	
	тПуть = "c:\temp\pricesonix.xml"; //для примера...
	ДвоичныеДанные.Записать(тПуть);	
	
	ЧтениеХ=Новый ЧтениеXML;
	ЧтениеХ.ОткрытьФайл(тПуть);	
КонецПроцедуры

 

Простая загрузка файла на сервер используя JQUERY

Задача: сохранить файл на сервер без обновления страницы. Т.е. при помощи ajax

Решение:

Клиентская часть:

<h1>Отправка сообщения в техподдержку</h1>
    <div id="snd">
        <form id="data" method="post" enctype="multipart/form-data">
            <textarea id="tehtxt" name="tehtxt" class="form-control" rows="3" placeholder="Сообщение для техподдержки"></textarea>
            <br/>
            <input name="image" type="file" />
            <br/>
            <button class="btn btn-success" id="buttonsendteh">Отправить сообщение</button>
        </form>
    </div>
    <br/>
    <script>
        $("form#data").submit(function(e) {
                e.preventDefault();    
                var formData = new FormData(this);
                $("#buttonsendteh").hide();
                $.ajax({
                    url: "index.php?route=/controller/server/sendtoteh.php",
                    type: 'POST',                  
                    data: formData,
                    success: function (data) {
			$("#snd").html(data);    
			ListSbssMessages();
			$("#buttonsendteh").show();
                    },
                    cache: false,
                    contentType: false,
                    processData: false
                });
        });
    </script>    

Серверная часть:

 $tehtxt=mysqli_real_escape_string($sqlcn->idsqlconnection,$_POST["tehtxt"]);
 $prc="";  
  if (isset($_FILES['image'])==true){
    $orig_file = $_FILES['image']['name']; 
    $userfile_name = GetRandomId(8) . '.' . pathinfo($orig_file, PATHINFO_EXTENSION);
    $src = $_FILES['image']['tmp_name'];    
    $res = move_uploaded_file($src, WUO_ROOT."/files/".$userfile_name);     
    $prc="Прикрепленный файл: $userfile_name";
  };