Como enviar / enviar dados para o database e na pasta específica?

Estou tentando fazer o plugin de vídeo. Deseja enviar dados para mover o arquivo em uma pasta que está na pasta plugin_name. Para enviar / enviar, estou tentando a function ‘plugin_dir_path ()’. E não está funcionando. Apenas mostrando no navegador que “uploading%”. Mas nem está se movendo para a pasta nem atualizando o database. Por favor me ajude.

<form action = "" enctype="multipart/form-data" method = "POST"> 

Título (aparecerá como o nome do video)

  

Upload Video

About the video

Para mover o arquivo, estou usando a seguinte maneira ….

  $tmp_name = $_FILES['file']['tmp_name']; $tar_file_name = $_FILES['file']['name']; $t_upload_dir = plugin_dir_path(__FILE__).'Uploads'; if(move_uploaded_file($tmp_name, $t_upload_dir."/".$tar_file_name)){ echo "Uploading successful"; } 

Solutions Collecting From Web of "Como enviar / enviar dados para o database e na pasta específica?"

Parte 1: Manipulação de formulários

Em primeiro lugar, vamos corrigir o processamento do formulário de upload. Você nunca deve enviar o usuário para um arquivo PHP dedicado para processamento, se for um formulário ou um upload porque:

  • O arquivo então tem que inicializar o WordPress para usar a API do WP, acoplando-o firmemente à sua estrutura de pastas e apresentando fragilidade
  • O arquivo funcionará mesmo se o plugin tiver sido desativado, apresentando um risco de segurança
  • Não é mais possível modificar e interceptar o código de tratamento de formulário de outro lado
  • Inúmeras desvantagens em relação aos sistemas de cache e ao desempenho

O WordPress é um CMS, e você deve permitir que o WordPress manipule os pedidos. Seu trabalho é dizer o que fazer com esses pedidos.

Então é assim que você lida com um formulário:

modelo:

 
< ?php wp_nonce_field( 'allens_form', 'allens_form_nonce' ); ?> ... form fields

Em um plugin ou tema functions.php :

 add_action( 'init', 'allens_form_handler'); function allens_form_handler() { if ( empty( $_POST['allens_form'] ) ) { return; // this isn't a form submission } if ( ! wp_verify_nonce( $_POST['allens_form_nonce'], 'allens_form' ) ) { return; // invalid or missing nonce! Something dodgy's going on here } // process form data } 

Observe também a adição de um nonce. Isso deve aumentar consideravelmente a segurança do seu formulário em determinados tipos de ataques. Considere fazer uma nova pergunta neste site para obter uma resposta mais abrangente do que não são e do que protegem contra.

Pode ser tentador usar a mesma estratégia para AJAX e usar um arquivo de ponto de extremidade AJAX, mas, como mencionei acima, esta é uma má idéia por motivos semelhantes. Em vez disso, use o WP AJAX api, ou registre um ponto final da API REST.

Parte 2: Fazendo o upload de vídeos

Todos os uploads vão na pasta uploads. Em muitos sistemas, a pasta pode estar em um lugar diferente e pode ser o único lugar no sistema de arquivos que o WordPress pode escrever. Sua pasta de plugin só deve conter código e resources, não deve conter conteúdo de usuário.

A importante informação faltante aqui é o tipo de publicação.

Todas as postagens no WordPress possuem um ‘tipo’. As postagens são do tipo ‘post’, as páginas são do tipo ‘página’, etc, elas são todas armazenadas da mesma maneira no database. Existem outros tipos de postagem também, mas o que você deveria estar interessado é o tipo de postagem de attachment .

Quando você carrega qualquer coisa na biblioteca de mídia, ele é colocado na pasta de carregamentos, mas o WordPress não procura nessa pasta para encontrar uploads. Em vez disso, quando um upload é feito, ele cria uma postagem de attachment de tipo e essas postagens de anexo são o que você vê na área de administração.

Os tipos de publicação de anexos contêm informações, como o nome do anexo, onde ele pode ser encontrado na pasta de carregamentos, qual o tipo de arquivo que é, o autor e outro post meta, dependendo do tipo de mídia. Estes são o que você quer usar para seus carregamentos de vídeo.

Como posts podem ter pais, você encontrará que as imagens carregadas e inseridas em uma postagem têm essa relação. Essas imagens serão anexos e as postagens de posts pai são as publicações em que aparecem. Também é assim que as imagens em destaque funcionam, as postagens possuem um campo personalizado / meta de publicação que contém a identificação de uma postagem de anexo. Essa publicação é o anexo da imagem para a imagem em destaque.

Importante, existem várias funções que você encontrará incrivelmente úteis na implementação do seu upload, mas o que você achará o mais útil é este:

 media_handle_upload( $file_id, $post_id, $post_data, $overrides ); 

Esta function, quando dados os argumentos apropriados, levará seu arquivo carregado, mova-o para o local correto, crie uma postagem anexa para você e preencha-a com todos os metadados necessários.

O que você faz com a postagem de anexo é com você, mas você quererá salvar a ID em algum lugar útil e sempre se referir a ela por sua ID. Nunca armazene o URL de um anexo. Para obter o URL para exibir na página, use esta function:

 $url = wp_get_attachment_url( $attachment_id ); 

Certifique-se de verificar se a function funcionou, $url pode ser um object de erro ou um valor false .