Имя: Пароль:
1C
1С v8
Отправка POST файла .DOC
,
0 Ruslan_
culeiman
 
16.02.18
11:36
Приветствую, пишу стандартную отправку multipart/form-data на сайт файл, при этом файлы PDF отправляются хорошо, но если отправляю doc или xls, сервер возвращает ошибку, сайтовики ничего ответить не могут, может кто в курсе офисные файлы надо по другому отправлять:
    ИмяФайлаОтправки = ПолучитьимяВременногоФайла("txt");
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");    
    
    МассивФайловДляОбъединения = Новый Массив;
    
    ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt");
    ФайлОтправкиНачало     = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.ANSI, Символы.ПС, Ложь);
    ФайлОтправкиНачало.ЗаписатьСтроку("");
    ФайлОтправкиНачало.ЗаписатьСтроку("------" + Boundary);
    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename="""+ ИмяФайла +"""");
    //ФайлОтправкиНачало.ЗаписатьСтроку("Content-Type: "+ СтруктураТипаДанных.ТипФайла);
    ФайлОтправкиНачало.ЗаписатьСтроку("");
    ФайлОтправкиНачало.Закрыть();
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало);
    
    ИмяФайлаДляЗагрузкиВременный = ПолучитьИмяВременногоФайла("tmp");
            
    КопироватьФайл(ИмяФайлаДанных, ИмяФайлаДляЗагрузкиВременный);
    МассивФайловДляОбъединения.Добавить(ИмяФайлаДляЗагрузкиВременный);

    ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt");
    ФайлОтправкиКонец     = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.ANSI, Символы.ПС, Ложь);
    
    ФайлОтправкиКонец.ЗаписатьСтроку("");
    
    ФайлОтправкиКонец.ЗаписатьСтроку("------" + Boundary);
    ФайлОтправкиКонец.ЗаписатьСтроку("Content-disposition: form-data; name=""target""" + Символы.ПС);
    ФайлОтправкиКонец.ЗаписатьСтроку(СтруктураТипаДанных.Назначение);
    ФайлОтправкиКонец.ЗаписатьСтроку("------" + Boundary + "--");
    ФайлОтправкиКонец.Закрыть();
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец);
    
    ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки);
1 dezss
 
16.02.18
12:04
А какую ошибку возвращает сервер?
2 Ruslan_
culeiman
 
16.02.18
12:06
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>An Error Occurred: Internal Server Error</title>
</head>
<body>
<h1>Oops! An Error Occurred</h1>
<h2>The server returned a "500 Internal Server Error".</h2>
<div>
Something is broken. Please let us know what you were doing when this error occurred.
We will fix it as soon as possible. Sorry for any inconvenience caused.
</div>
</body>
</html>
3 dezss
 
16.02.18
12:08
(2) Это ошибку возвращает сервер сайта.
Вот пусть они и объясняют что это за ошибка.
Кстати, там так и написано.
+ если есть интерфейс для загрузки файлов на самом сайте, проверь загружаются ли он из него.
4 Ruslan_
culeiman
 
16.02.18
12:17
(3) в общем со стороны 1С я делаю все норм, ок спасибо
5 oleg_km
 
16.02.18
13:26
фиддлером сравни, что получается в 1С и что если отправить правильно
6 Ruslan_
culeiman
 
20.02.18
15:55
Вся проблема была в  filename="""+ ИмяФайла +"""");
Название должно быть латинскими буквами :(