Pergunta

Eu estou usando atualmente Extensão:Empurre para copiar artigos de um MediaWiki (1.16) de instalação (que fica em intranet local e não está acessível a partir do exterior) para outro.No entanto, Empurre só pode copiar arquivos de ter o controle remoto do MediaWiki baixar o arquivo, o que não é possível no presente caso (intranet wiki não está acessível a partir do exterior por um motivo).

Então, eu preciso de alguma forma para ligar o Upload de API do MediaWiki diretamente.Minha tentativa é a seguinte:

$header = 'Content-Type: multipart/form-data; boundary='.$multipart_boundary.'\r\n'.
          'Cookie: '.$cookies;
$file_contents = file_get_contents ($imagePage->getDisplayedFile()->getFullUrl());
$content = "--".$multipart_boundary.'\r\n'.
           'Content-Disposition: form-data; name="file"; filename="'.basename($imagePage->getDisplayedFile()->getFullUrl()).'"\r\n'.
           'Content-Type: application/octet-stream\r\n\r\n'.
           $file_contents.'\r\n'.
           '--'.$multipart_boundary.'\r\n'.
           'Content-Disposition: form-data; name="action"\r\n\r\n'.
           'upload\r\n'.
           '--'.$multipart_boundary.'\r\n'.
           'Content-Disposition: form-data; name="format"\r\n\r\n'.
           'json\r\n'.
           '--'.$multipart_boundary.'\r\n'.
           'Content-Disposition: form-data; name="ignorewarnings"\r\n\r\n'.
           '1\r\n'.
           '--'.$multipart_boundary.'\r\n'.
           'Content-Disposition: form-data; name="token"\r\n\r\n'.
           $token.'\r\n';

$context = stream_context_create (array (
  'http' => array (
    'method' => 'POST',
    'header' => $header,
    'content' => $content,
    ),  
  )); 

$response = file_get_contents ($target, false, $context);

Eu não receber nenhuma mensagem de erro (nem do local e remoto Apache), mas o arquivo não está aparecendo, ou.Alguém tem uma ideia do que está errado, tem uma solução de trabalho ou, pelo menos, pode me apontar o mediawiki funções para que eu possa colocar algumas log de depuração no-los?

Foi útil?

Solução 2

Bem, o autor original atualizado a extensão.Que resolveu o problema.

Outras dicas

Eu não tentei isso ainda, mas se você estiver criando páginas Wiki remota (cujo URL que você sabe), então parece como se a maneira de o fazer é descrito em http://www.mediawiki.org/wiki/API:Edit que diz que você precisa para editar um símbolo e, em seguida, post com o token, o conteúdo da página, etc.Você receber mensagens formatados em XML de volta para controlar o sucesso ou o fracasso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top