Suporte » Desenvolvendo com WordPress » Upload e Download de arquivos no plugin wordpress

  • adrianleite

    (@adrianleite)


    Olá Srs.(a).

    Estou desenvolvendo um plugin e não estou conseguindo realizar algumas ações, e queria ajuda. Vou dividir em partes.

    1º – Queria guardar arquivos (zip) de preferencia na pasta do plugin. Estou utilizando o código abaixo de exemplo que cria um zip, mas o mesmo está sendo criando na pasta wp-admin.

    $zip = new ZipArchive();
    if( $zip->open( 'tmp_cs/'.$nome , ZipArchive::CREATE )  === true){
      $zip->addFromString('string.txt' , "Uma string qualquer" );
      $zip->addFile('tmp_cs/'.$linha->nome, $linha->conteudo);
      $zip->close();
      relatorio_page('OK');
    }else{
      relatorio_page('ERRO');
    }

    Tentei utilizar a url completa, função que mostra o path do wp-content, mas ao utilizar o mesmo não é criado.

    Esse é o 1º Desafio que estou enfrentando (rsrs), diante desse problema pensei em salvar esses arquivo direto no banco (campo blob), ai consegui salvar, mas veio o segundo problema.

    2º – Download dos arquivo. Vi vários exemplos que utilizam a função Header(), mas não tive sucesso. Segue tbm um exemplo utilizado.

    $linha = $wpdb->get_row("SELECT nome,conteudo,tipo FROM ".$wpdb->prefix."arquivos WHERE id = ".$id);
    if($linha){
      header('Content-Type: filesize('.$linha->conteudo.')');
      header('Content-Type: '.$linha->tipo);
      header('Content-Disposition: download; filename='.$linha->nome);
      print($linha->conteudo);
    }

    Mas acabo recebendo um “Cannot modify header information – headers already sent by…”, O exemplo acima estou tentando realizar download do arquivo que se encontra no banco. Mas pode ser o download de arquivos em pastas do plugin se eu conseguir resolver o 1º problema de salvar os mesmo.

    Queria ajuda para resolver esses problemas ou sugestões.
    Muito Obrigado desde já.
    Adriano.

  • O tópico ‘Upload e Download de arquivos no plugin wordpress’ está fechado para novas respostas.