1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Как загрузить аттач через Datawriter API?

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем gunpowder, 25.05.2015.

Загрузка
  1. gunpowder

    gunpowder Активный пользователь

    Регистрация:
    17.09.13
    Сообщения:
    116
    Симпатии:
    1
    Версия XF:
    1.2.1
    Спасибо. А можно ли как-нибудь через DataWriter загрузить изображение и вставить его в пост?
     
  2. gunpowder

    gunpowder Активный пользователь

    Регистрация:
    17.09.13
    Сообщения:
    116
    Симпатии:
    1
    Версия XF:
    1.2.1
    Зааплоадить в аттач не проблема, там вопрос в том, как его вставить нормально
     
  3. gunpowder

    gunpowder Активный пользователь

    Регистрация:
    17.09.13
    Сообщения:
    116
    Симпатии:
    1
    Версия XF:
    1.2.1
    В оригинале имеется следующий код:

    $input = $this->_input->filter(array(
    'hash' => XenForo_Input::STRING,
    'content_type' => XenForo_Input::STRING,
    'content_data' => array(XenForo_Input::UINT, 'array' => true),
    'key' => XenForo_Input::STRING
    ));


    Т.е. hash файла берется из входящих данных, но непонятно где конкретно он считается, потому что на странице загрузки в JS файлах нигде не видно этого. ЗНает кто-нибудь?
     
  4. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Грубо как-то так: Почитайте внимательно код из XenForo_ControllerPublic_Attachment::actionDoUpload.
    PHP:
    if (!$input['hash'])
    {
       
    $input['hash'] = $this->_input->filterSingle('temp_hash'XenForo_Input::STRING);
    }

    $attachmentModel $this->_getAttachmentModel();
    $attachmentHandler $attachmentModel->getAttachmentHandler($input['content_type']); // known to be valid
    $contentId $attachmentHandler->getContentIdFromContentData($input['content_data']);

    $existingAttachments = ($contentId
        
    $attachmentModel->getAttachmentsByContentId($input['content_type'], $contentId)
        : array()
    );
    $newAttachments $attachmentModel->getAttachmentsByTempHash($input['hash']);

    $file XenForo_Upload::getUploadedFile('upload');

    $filename 'my_file.txt';
    if (
    $filename) {
        
    $file->setFileName($filename);
    }

    $dataId $attachmentModel->insertUploadedAttachmentData($fileXenForo_Visitor::getUserId());
    $attachmentId $attachmentModel->insertTemporaryAttachment($dataId$input['hash']);
     
    SAS1024 и Mirovinger нравится это.

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