Publicidade

cristianomg

Gravar no banco após gerar Upload de imagem

Patrocínio:

E ae pessoal,

Preciso de uma orientação no seguinte,

Fazendo algumas pesquisas cheguei no código onde seleciono multiplas imagens e as coloco em uma pasta especifica, até tranquilo.

Mas agora eu preciso que dentro do meu foreach  cada imagem seja gravada na base de dados, ou seja, ao receber cada imagem eu terei de gravar na base linha a linha.

Tentei colocar o insert dentro do foreach mas não deu...algué tem alguma orientação de onde posso incluir meu insert por exem da tabela imagens ( codimg, nomeimagem )

 

Fiz o meu foreach desta forma:

 

 

 

 session_start();
 foreach($_FILES['images']['error'] as $key => $error){
	 
	 if($error == UPLOAD_ERR_OK){
		 $name = $_FILES['images']['name'][$key];
		 $_SESSION['imagens'][] = $name;
		 move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
		 }
		 

		// Eu encontrei esta instrução abaixo mas não acredito que seja a forma mais adequada e esta tb não funcionou
		foreach($_SESSION['imagens'] as $key => $imagem){
		$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());
		if($resultado=mysql_query($sql)){
			echo "<script>alert('salvou');</script>";
			}else{
			echo  die(mysql_error());
			echo "Deu guru!";
			}
		 }
 }

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei desta forma e também não deu..

 

 

 

session_start();
 foreach($_FILES['images']['error'] as $key => $error){
	 
	 if($error == UPLOAD_ERR_OK){
		 $name = $_FILES['images']['name'][$key];
		 $_SESSION['imagens'][] = $name;
		 move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
         /// tentei incluir aquei dentro do foreach e não deu ..
$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());
		if($resultado=mysql_query($sql)){
			echo "<script>alert('salvou');</script>";
			}else{
			echo  die(mysql_error());
			echo "Deu guru!";
			}

		 }
 }

Alguém sabe outro meio para atender isso ?

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que acontece de errado?

 

o primeiro código não faz sentido porque você fez um loop dentro do outro.
mas qual o problema desse segundo? o que aparece? 

 

isso aqui:

$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());

está errado.
tente assim:

 

session_start();
foreach($_FILES['images']['error'] as $key => $error){
   
  if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
         
    $sql = "INSERT INTO fotos_anuncio (nomeimagem) VALUES ('$name');";
    mysql_query($sql) or die(mysql_error());
  }
}

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei,

Na verdade a tela carrega as fotos na div, chama o javascript para upload das fotos na pasta, mas passa batido pelo INSERT.

Nem uma mensagem pelo insert exibe em tela...

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então procure no log da aplicação o que está acontecendo.
Sem mensagem de erro é impossível averiguarmos. Como o problema é PHP vou transferir teu tópico de fórum.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém ai já passou por algo parecido para dar um norte.

Olhei com f12 para ver logs de erros mas não gerou nada. :persevere:

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que ver os logs do servidor. E não no F12.

Pesquise como ver os logs do php/apache no teu sistema operacional.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa William,
Olhei no easy nos log files > Apache error e Mysql error , e não contém nada na data atual quando tento executar as inclusões.

Vou ver se acho algum outro tipo, de envio com preview de múltiplas imagens pra base de dados.

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO

 

 

Opa descobri,
havia um bloqueio no servidor, devido ao limite de "mb" de envio das imagens, acho que estava impedindo de certa forma isso.

Segue para quem precisar usar um dia.

 

Seleção das imagens:

 

				<form action="upload.php" enctype="multipart/form-data" method="post" >
					<input type="file" name="images[]" id="images" multiple>
					<button  type="submit" id="btn">Enviar Arquivos</button>
				</form>

 

 

Publicando na base de dados:

 <?php 
session_start();
include "conexao_banco";

foreach($_FILES['images']['error'] as $key => $error){
   
  if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'local onde ira mover as imagens/'.$name);
         
    $sql = "INSERT INTO tabela (nomeimagem) VALUES ('$name');";
    mysql_query($sql) or die(mysql_error());
  }
}
 
 ?>

 

 

William obrigado pela atenção ae. :thumbsup:

 

 

faz tempo que não entro no site e mudou, onde eu coloco o post como resolvido ?

 

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me deparei com mais um ultimo ponto para fechar.

Eu precisaria passar um id de anuncio como parâmetro

 

Tentei de duas formas: passando por input text e pegando no $_POST e/ ou passando por GET e pegando por $_GET

Mas ele insere zero na base, tipo não pega o POST ou o GET

 

Não entendi....

<form action="upload.php?id=<?php echo $_GET['id']?>" enctype="multipart/form-data" method="post" >
				<input type="text" name="idanuncio" value="25">
					<input type="file" name="images[]" id="images" multiple>
					<button  type="submit" id="btn">Enviar Arquivos</button>
				</form>

 

Para salvar na base o idanuncio

 


foreach($_FILES['images']['error'] as $key => $error){
  
  
	if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
	
	$idanuncio = $_POST['idanuncio'];   
**ou usando GET	
	$idanuncio = $_GET['idanuncio'];         

    $sql = "INSERT INTO fotos_anuncio (idanuncio, nomeimagem) VALUES ('$idanuncio','$name');";
    mysql_query($sql) or die(mysql_error());
  }
}
 

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
<input type="hidden" name="id" value="<?=$_GET['id']?>">

Add no form um input escondido.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae Williams

Justamente fiz isto mas não vai, as imagens estão sendo salva na base corretamente mas o input text que contém meu valor ou até mesmo o $_GET não absorve o valor no arquivo upload.php

 

Não sei o que pode ser que acontece...

Inseri diretamente o valor e no arquivo upload.php não esta pegando este valor do input,..

<input type="text" name="idanuncio" value="25">

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
<form action="upload.php" enctype="multipart/form-data" method="post" >
    <input type="hidden" name="idanuncio" value="25">
    <input type="file" name="images[]" id="images" multiple>
    <button  type="submit" id="btn">Enviar Arquivos</button>
 </form>



Faça um debug nos dados . 
 

upload.php


var_dump($_POST);

e ve se chega o post

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vem este retorno:

array(1) { ["idanuncio"]=> string(2) "25" }

Só que tem uma coisa Williams...eu uso um js que faz o esquema das imagens multiplas e chama o upload.php .

Cara eu acho que eu deve passar este parametro pelo JS ..

Bha só pode ser isso não é?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o teste, mas se você fez o debug e esta aparecendo a string lá porque já foi enviada ou não!?

Testa diretamente, cara isso é bem básico, seja passado por js ou não!
 

$idanuncio = isset( $_POST['idanuncio'] ) ? $_POST['idanuncio'] : false;

echo $idanuncio;
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

  • Conteúdo Similar

    • Por Diego-SLP
      Pessoal Bom dia,
      Preciso fazer um sistema que faça o upload de uma foto de perfil para o banco e assim eu consiga traze-la na pagina PROFILE do meu usuario, porém, com minhas pesquisas na internet não consegui chegar a uma conclusão eficiente, já que não domino muito essa parte de uploads, pesquisei no blog do Thiago Belem e ele da um script pronto, explicado, contudo, no meu pc ocorre um erro, gostaria da ajuda de voces, vou postar aqui o codigo e o erro. grato.
       
      RECEBE_UPLOAD
      <?php // Aqui você faz a conexão com o banco de dados // Lista de tipos de arquivos permitidos $tiposPermitidos= array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png'); // Tamanho máximo (em bytes) $tamanhoPermitido = 1024 * 500; // 500 Kb // O nome original do arquivo no computador do usuário $arqName = $_FILES['arquivo']['name']; // O tipo mime do arquivo. Um exemplo pode ser "image/gif" $arqType = $_FILES['arquivo']['type']; // O tamanho, em bytes, do arquivo $arqSize = $_FILES['arquivo']['size']; // O nome temporário do arquivo, como foi guardado no servidor $arqTemp = $_FILES['arquivo']['tmp_name']; // O código de erro associado a este upload de arquivo $arqError = $_FILES['arquivo']['error']; if ($arqError == 0) { // Verifica o tipo de arquivo enviado if (array_search($arqType, $tiposPermitidos) === false) { echo 'O tipo de arquivo enviado é inválido!'; // Verifica o tamanho do arquivo enviado } else if ($arqSize > $tamanhoPermitido) { echo 'O tamanho do arquivo enviado é maior que o limite!'; // Não houveram erros, move o arquivo } else { $pasta = '/uploads/'; // Pega a extensão do arquivo enviado $extensao = strtolower(end(explode('.', $arqName))); // Define o novo nome do arquivo usando um UNIX TIMESTAMP $nome = time() . '.' . $extensao; // Escapa os caracteres protegidos do MySQL (para o nome do usuário) $upload = move_uploaded_file($arqTemp, $pasta . $nome); // Verifica se o arquivo foi movido com sucesso if ($upload == true) { // Cria uma query MySQL $sql = "INSERT INTO user (foto) VALUES ('". $upload ."')"; // Executa a consulta $query = mysql_query($sql); if ($query == true) { echo 'Usuário inserido com sucesso!'; } } } } else { echo 'Ocorreu algum erro com o upload, por favor tente novamente!'; } INSERT_COLABORADOR
      <form class="form-horizontal form-label-left input_mask" action="recebe_upload.php" method="post" enctype="multipart/form-data"> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Nome"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Endereço"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Data de Nascimento"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Telefone"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Celular"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Data de Admissão"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Àrea de Atuação"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Horário de Trabalho"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback"> <input type="file" class="form-control has-feedback-left" id="arquivo" name="arquivo" placeholder="Foto do Perfil"> <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span> </div> <div class="form-group"> <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3"> <button type="submit" class="btn btn-success" value="enviar">Cadastrar</button> </div> </div> </form> Só estou usando o campo da foto por enquanto, os outros não estou inserindo no banco, e a pasta 'uploads' tá criada na raiz do site, junto dessas paginas.
       
      os erros são:
       
      Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\dash\production\recebe_upload.php on line 27

      Warning: move_uploaded_file(/uploads/1490185930.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30

      Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php9C30.tmp' to '/uploads/1490185930.jpg' in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30
       
       
      Obrigado.
    • Por crhistianosa
      Estou tentando através do Google Script criar um formulário em que haja alguns botões para upload de arquivos em que eles irão direto para o Google Drive. Estou usando um código que obtive na internet, porém preciso adicionar mais botões para anexar arquivos. Consegui, mas só vai um arquivo para o Google Drive.
      Segue o código do arquivo "forms.html":
      <!DOCTYPE html> <html> <head> <base target="_blank"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Google File Upload by CTRLQ.org</title> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/css/materialize.min.css"> <style> .disclaimer{width: 480px; color:#646464;margin:20px auto;padding:0 16px;text-align:center;font:400 12px Roboto,Helvetica,Arial,sans-serif}.disclaimer a{color:#009688}#credit{display:none} </style> </head> <body> <!-- Written by Amit Agarwal amit@labnol.org --> <form class="main" id="form" novalidate="novalidate" style="max-width: 480px;margin: 40px auto;"> <div id="forminner"> <div class="row"> <div class="col s12"> <h5 class="center-align teal-text">Upload Files to my Google Drive</h5> <p class="disclaimer">This <a href="http://www.labnol.org/internet/file-upload-google-forms/29170/">File Upload Form</a> (<a href="https://youtu.be/C_YBBupebvE">tutorial</a>) is powered by <a href="https://ctrlq.org/code/19747-google-forms-upload-files" target="_blank">Google Scripts</a></p> </div> </div> <div class="row"> <div class="input-field col s12"> <input id="name" type="text" name="Name" class="validate" required="" aria-required="true"> <label for="name">Name</label> </div> </div> <div class="row"> <div class="input-field col s12"> <input id="email" type="email" name="Email" class="validate" required="" aria-required="true"> <label for="email">Email Address</label> </div> </div> <div class="row"> <div class="file-field input-field col s12"> <div class="btn"> <span>File</span> <input id="files" type="file"> </div> <div class="file-path-wrapper"> <input class="file-path validate" type="text" placeholder="Select a file on your computer"> </div> </div> </div> <div class="row"> <div class="file-field input-field col s12"> <div class="btn"> <span>File2</span> <input id="files2" type="file"> </div> <div class="file-path-wrapper"> <input class="file-path validate" type="text" placeholder="Select a file on your computer"> </div> </div> </div> <div class="row"> <div class="input-field col s6"> <button class="waves-effect waves-light btn submit-btn" type="submit" onclick="submitForm(); return false;">Submit</button> </div> </div> <div class="row"> <div class="input-field col s12" id = "progress"> </div> </div> </div> <div id="success" style="display:none"> <h5 class="left-align teal-text">File Uploaded</h5> <p>Your file has been successfully uploaded.</p> <p>The <a href="http://www.labnol.org/internet/file-upload-google-forms/29170/">pro version</a> (see <a href="http://j.mp/GoogleFormsDemo">demo form</a>) includes a visual drag-n-drop form builder, CAPTCHAs, the form responses are saved in a Google Spreadsheet and respondents can upload multiple files of any size.</p> <p class="center-align"><a class="btn btn-large" href="https://gum.co/GA14?wanted=true" target="_blank">Upgrade to Pro</a></p> </div> </form> <div class="fixed-action-btn horizontal" style="bottom: 45px; right: 24px;"> <a class="btn-floating btn-large red"> <i class="large material-icons">menu</i> </a> <ul> <li><a class="btn-floating red" href="https://gum.co/GA14" target="_blank" title="Buy License - File Upload Form"><i class="material-icons">monetization_on</i></a></li> <li><a class="btn-floating blue" href="https://youtu.be/C_YBBupebvE" target="_blank" title="Video Tutorial"><i class="material-icons">video_library</i></a></li> <li><a class="btn-floating green" href="http://www.labnol.org/internet/file-upload-google-forms/29170/" target="_blank" title="How to Create File Upload Forms"><i class="material-icons">help</i></a></li> </ul> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/js/materialize.min.js"></script> <script src="https://gumroad.com/js/gumroad.js"></script> <script> var file, reader = new FileReader(); reader.onloadend = function(e) { if (e.target.error != null) { showError("File " + file.name + " could not be read."); return; } else { google.script.run .withSuccessHandler(showSuccess) .uploadFileToGoogleDrive(e.target.result, file.name, $('input#name').val(), $('input#email').val()); } }; function showSuccess(e) { if (e === "OK") { $('#forminner').hide(); $('#success').show(); } else { showError(e); } } function submitForm() { var files = $('#files')[0].files; if (files.length === 0) { showError("Please select a file to upload"); return; } file = files[0]; if (file.size > 1024 * 1024 * 5) { showError("The file size should be < 5 MB. Please <a href='http://www.labnol.org/internet/file-upload-google-forms/29170/' target='_blank'>upgrade to premium</a> for receiving larger files in Google Drive"); return; } showMessage("Uploading file.."); reader.readAsDataURL(file); } function showError(e) { $('#progress').addClass('red-text').html(e); } function showMessage(e) { $('#progress').removeClass('red-text').html(e); } </script> </body> </html> Abaixo o código "Server.gs":
      /* RECEIVE FILES IN GOOGLE DRIVE - - - - - - - - - - - - - - - Tutorial: www.labnol.org/awesome Twitter: @labnol Email: amit@labnol.org */ function doGet(e) { return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Google File Upload by CTRLQ.org"); } function uploadFileToGoogleDrive(data, file, name, email) { try { var dropbox = "Received Files"; var folder, folders = DriveApp.getFoldersByName(dropbox); if (folders.hasNext()) { folder = folders.next(); } else { folder = DriveApp.createFolder(dropbox); } /* Credit: www.labnol.org/awesome */ var contentType = data.substring(5,data.indexOf(';')), bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)), blob = Utilities.newBlob(bytes, contentType, file), file = folder.createFolder([name, email].join(" ")).createFile(blob); return "OK"; } catch (f) { return f.toString(); } }  
    • Por Su Machado #timbeta
      Olá gente   estou fazendo um site para o meu trabalho e estou tentando fazer um botão de upload funcionar, mas eu não sei linguagem de php, estou muito confusa com muita coisa que consegui na internet, eu preciso que a pessoa que acessar meu site possa fazer uploads de arquivo em PDF para meu email, estou fazendo meu site pela locaweb, eu fiz o botão, mas como faço ele funcionar?? Segue o código do botão:
      <html> <body> <form action="envia_foto.php" method="post" enctype="multipart/form-data"> <input type="file" name="Arquivo" id="Arquivo"><br> <input type="submit" value="Enviar"> <input type="reset" value="Apagar"> </form> </body> </html>  
      Por favor, me ajudem!!! Depois desse botão criado, o que eu faço agora???? 

    • Por diegosouzabji
      Tenho um site de upar vídeos, fotos e games. O upload desses arquivos está ocorrendo de modo correto, porém não aparece a barra ( progress bar ) mostrando o tempo que falta para terminar o upload. Segue o código e a imagem de como deve funcionar. Desde já agradeço a todos pela ajuda!
      jquery.upload-0.1.js
      upload_progress.php
      json.php
      filter.class.php

    • Por salomaojr2009
      Boa noite amigos, essa é minha primeira postagem no forum. Estou construindo um site e não tenho experiencia em php,  estou tendo erros com as funções e não sei como proceder para sanar esses erros.
       
      Estou usando uma função que pega a url do vide em alguns sites adultos e recupera o id do embed, até ai tudo certo e funcionando perfeitamente em sintonia com um formulário Gravity forms para envio dos videos (urls), fui alem atras de um codigo que pudesse pegar o endereço url e roda-lo e encontrar o endereço do thumb dentro da pagina, ao encontrar trazer, fazer uplload para o meu servidor. Feito isso setar a imagem como de destaque, até ai tudo funcionando perfeitamente. O que está me ocorrendo é que as funções estão dentro do functions.php do meu tema Sahifa, e cada vez que é rodado a pagina do video uma nova imagem é enviada ao servidor. Queria juda para impedir que esssa imagem seja carregada, ja pensei em uma função que condicionasse o envio a alguma coisa, no entanto não sei faze-la. Ou então ao encontrar a imagem de nome igual no servidor não enviar outra. Segue a função que está dentro da pagina functions. Desde já agradeço se puderem me ajudar.
       
      Quero condicionar a função de fazer upload das imagens a alguma coisa que vá fazer com que a cada vez que a pagina carregar não vá mandar outra imagem para o servidor. Da forma como está, <?if ($site == 'xvideos'... nas postagens do xvideos, mand a foto daquela postagem novamente ao servidor. talvez se fosse retirado parte da função de envio que cria novo nomes se o arquivo ja existir, pudesse suprir minhas necessidades. Segue o código simplificado abaixo. 
       
      <? // shortcode vídeos function vid_sc($atts, $content=null) { extract(shortcode_atts(array( 'site' => 'xvideos', 'id' => '', 'autoplay' => '' ), $atts) ); if ( $site == "xvideos" ) { $src = $id; $video = substr(@parse_url($src, PHP_URL_PATH), 6); $video_id = strtok($video, '/'); if( !empty( $site == 'xvideos' ) ){ $endereco = file_get_contents($id); $pegar = preg_match_all('/<meta property="og:image" content=(.+)\/>/', $endereco, $conteudo); $image_s1 = $conteudo[1][0]; // Define the image URL here $image_s2 = substr($image_s1, 1); $image_s3 = strtok($image_s2, '"'); $image_url = $image_s3; $image_name = $video_id.'.jpg'; $upload_dir = wp_upload_dir(); // Set upload folder $image_data = file_get_contents($image_url); // Get image data $unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name ); // Generate unique name $filename = basename( $unique_file_name ); // Create image file name $file_path = get_site_url() . '/wp-content/uploads/' . $image_name; // Get the futur file path of the image if( !file_exists($file_path) ){ // Check if image is already in upload_dir // Check folder permission and define file location if( wp_mkdir_p( $upload_dir['path'] ) ) { $file = $upload_dir['path'] . '/' . $filename; } else { $file = $upload_dir['basedir'] . '/' . $filename; } // Create the image file on the server file_put_contents( $file, $image_data ); // Check image file type $wp_filetype = wp_check_filetype( $filename, null ); // Set attachment data $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name( $filename ), 'post_content' => '', 'post_status' => 'inherit' ); // Create the attachment $attach_id = wp_insert_attachment( $attachment, $file, $post_id ); // Include image.php require_once(ABSPATH . 'wp-admin/includes/media.php'); require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/image.php'); // Define attachment metadata $attach_data = wp_generate_attachment_metadata( $attach_id, $file ); // Assign metadata to attachment wp_update_attachment_metadata( $attach_id, $attach_data ); // And finally assign featured image to post set_post_thumbnail( $post_id, $attach_id ); } } else { } } } if ($site == "xvideos") { return '<div class="embed-container xvideos" itemprop="video" itemscope itemtype="http://schema.org/VideoObject"><iframe width="'. $w .'" height="'. $h .'" src="https://flashservice.xvideos.com/embedframe/'. $video_id .'" class="vid iframe-'. $site .'" scrolling="no" allowfullscreen></iframe></div><br>'; } add_shortcode('videoin','vid_sc'); ?>