партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Свойства-таблицы».
Страницы: 1
Ответить
RSS
Загрузка мультифайлов в таблицу
 
Добрый день, пытаюсь через АПИ загрузить сразу несколько файлов в свойство таблицы Файл. Свойство множественное.

На входе я получаю вот такой массив с полями:
Код

[AUTO_DATE_REQUEST] => 09.09.2019

            
[AUTO_NAME_AUTHORITY_REQUEST] => Блок 1
            
[AUTO_DATE_RESPONSE_REQUEST] => 28.09.2019
            
[AUTO_RESULT_RESPONSE_REQUEST] => Результат блока 1
            
[AUTO_DOCS] => Array
                (
                    [
new_0] => Array
                        (
                            [
name] => Array
                                (
                                    [
0] => DYPBWfKWsAAnmC5.jpg
                                    
[1] => hQrohap0GTU.jpg
                                
)

                            [
type] => Array
                                (
                                    [
0] => image/jpeg
                                    
[1] => image/jpeg
                                
)

                            [
tmp_name] => Array
                                (
                                    [
0] => /tmp/php_upload/www/phpTmINjL
                                    
[1] => /tmp/php_upload/www/php53dHn1
                                
)

                            [
error] => Array
                                (
                                    [
0] => 0
                                    
[1] => 0
                                
)

                            [
size] => Array
                                (
                                    [
0] => 83982
                                    
[1] => 166143
                                
)

                        )

                )

            [
AUTO_DOCUMENT_REQUEST_COPY] => Array
                (
                )

        )
Далее соответственно пропихиваю этот массив через:
Код

CIBlockElement::SetPropertyValueCode($id_elem$code$arProps[$code])

Все поля сохраняются корректно кроме файлов. Файлы не загружаются и не появляются. Что делаю не так как запихнуть мне файлы?
 
Павел, добрый день!

Массив должен иметь такой вид с учетом ваших полей:
Код

[AUTO_DATE_REQUEST] => 09.09.2019   

[AUTO_NAME_AUTHORITY_REQUEST] => Блок 1
[AUTO_DATE_RESPONSE_REQUEST] => 28.09.2019
[AUTO_RESULT_RESPONSE_REQUEST] => Результат блока 1
[AUTO_DOCS__SAVED_FILES] => Array
   (
      [
371] => 371
      
[372] => 372
   
)
[
AUTO_DOCS] => Array
   (
      [
file_371] => Array
         (
            [
name] => 
            [
type] => 
            [
tmp_name] => 
            [
error] => 4
            
[size] => 0
         
)
   
      [
new_0] => Array
         (
            [
name] => DYPBWfKWsAAnmC5.jpg
            
[type] => image/jpeg
            
[tmp_name] => /tmp/php_upload/www/phpTmINjL
            
[error] => 0
            
[size] => 83982
         
)
         
      [
new_1] => Array
         (
            [
name] => hQrohap0GTU.jpg
            
[type] => image/jpeg
            
[tmp_name] => /tmp/php_upload/www/php53dHn1
            
[error] => 0
            
[size] => 166143
         
)   
   )
[
AUTO_DOCUMENT_REQUEST_COPY] => Array
   (
   )

То, что находится в AUTO_DOCS__SAVED_FILES - это список ID ранее сохраненных файлов в этой ячейке. Если об этом не беспокоиться, то файлы навечно останутся на диске, не привязанные к чему-либо. В данном случае файл 371 останется (т.к. он присутствует в "AUTO_DOCS" с ключом "file_371"), а файл 372 удалится.

Это пример для множественных файлов в ячейке, но для немножественных - все точно так же, все равно "AUTO_DOCS" был бы массивом, содержащим всю информацию о фалах, хоть и двух новых не могло бы быть.
 
Цитата
Сергей Эстрин написал:
Павел, добрый день!

Массив должен иметь такой вид с учетом ваших полей:
Код

[  AUTO_DATE_REQUEST  ] =>   09.09.2019   

  
[  AUTO_NAME_AUTHORITY_REQUEST  ] =>   Блок 1
  
[  AUTO_DATE_RESPONSE_REQUEST  ] =>   28.09.2019
  
[  AUTO_RESULT_RESPONSE_REQUEST  ] =>   Результат блока 1
  
[  AUTO_DOCS__SAVED_FILES  ] => Array
   (
      [  
371  ] =>   371
        
[  372  ] =>   372
     
)
[  
AUTO_DOCS  ] => Array
   (
      [  
file_371  ] => Array
         (
            [  
name  ] => 
            [  
type  ] => 
            [  
tmp_name  ] => 
            [  
error  ] =>   4
              
[  size  ] =>   0
           
)
   
      [  
new_0  ] => Array
         (
            [  
name  ] =>   DYPBWfKWsAAnmC5  .  jpg
              
[  type  ] =>   image  /  jpeg
              
[  tmp_name  ] => /  tmp  /  php_upload  /  www  /  phpTmINjL
              
[  error  ] =>   0
              
[  size  ] =>   83982
           
)
         
      [  
new_1  ] => Array
         (
            [  
name  ] =>   hQrohap0GTU  .  jpg
              
[  type  ] =>   image  /  jpeg
              
[  tmp_name  ] => /  tmp  /  php_upload  /  www  /  php53dHn1
              
[  error  ] =>   0
              
[  size  ] =>   166143
           
)   
   )
[  
AUTO_DOCUMENT_REQUEST_COPY  ] => Array
   (
   )

То, что находится в AUTO_DOCS__SAVED_FILES - это список ID ранее сохраненных файлов в этой ячейке. Если об этом не беспокоиться, то файлы навечно останутся на диске, не привязанные к чему-либо. В данном случае файл 371 останется (т.к. он присутствует в "AUTO_DOCS" с ключом "file_371"), а файл 372 удалится.

Это пример для множественных файлов в ячейке, но для немножественных - все точно так же, все равно "AUTO_DOCS" был бы массивом, содержащим всю информацию о фалах, хоть и двух новых не могло бы быть.
Большое спасибо за помощь) Все сработало!))
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить картинки
Отправить Отменить