drx 0 Denunciar post Postado Maio 18, 2015 Olá Pessoal! Estou implementando este código abaixo. O objetivo é renomear o nome do arquivo(vídeo), para a variável $vid, a qual está definido no select "video-1" até o "vídeo-5", de acordo com a definição pelo usuário. Como faço para renomear antes de upar o arquivo ? Alguém pode me ajudar? Desde já agradeço. // Se o usuário clicou no botão salvar, então efetua as ações... if(isset($_POST["cadvideo"])) { // Recupera os dados dos campos $controle = $_POST["controle2"]; //controle $vid = $_POST["videos"]; //video-1 ...5 $file = $_FILES["video"]["file"];//nome do arquivo vídeo $allowedTypes = array("video/wmv","video/avi","video/mpeg","video/mpg",'video/mp4'); $is_valid_type = (in_array($_FILES['file']['type'], $allowedTypes))?true:false; if ( $is_valid_type&& ($_FILES["file"]["size"] < 2000000)) { if ($_FILES["file"]["error"] > 0) echo '<script type="text/javascript">alert('. $_FILES["file"]["error"] .')</script>'; } else { echo '<script type="text/javascript">alert("Upload: " ' . $_FILES["file"]["name"] . ')</script>'; echo '<script type="text/javascript">alert("Type: " ' . $_FILES["file"]["type"] . ')</script>'; echo '<script type="text/javascript">alert("Size: " ' . ($_FILES["file"]["size"] / 1024) . ')</script>'; echo '<script type="text/javascript">alert("Temp file: " ' . $_FILES["file"]["tmp_name"] . ')</script>'; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo '<script type="text/javascript">alert(' . $_FILES["file"]["name"] . " já existe. " . ')</script>'; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo '<script type="text/javascript">alert("Upload realizado com sucesso!")</script>'; header("refresh:0 ;painel.php"); } } } else { echo '<script type="text/javascript">alert("Arquivo inválido")</script>'; } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 18, 2015 Não existe isso. O upload envia os bytes do arquivo, junto ao nome original. Você não pode alterar o nome original, afinal o arquivo é do usuário O que você deve fazer é alterar esta linha: move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . NOME_DO_ARQUIVO); Em "NOME_DO_ARQUIVO" você coloca o "video-1.mp4", por exemplo Compartilhar este post Link para o post Compartilhar em outros sites
drx 0 Denunciar post Postado Maio 18, 2015 No caso eu acrescento $vid que é a variável que foi definida pelo usuário pelo select, no lugar de .[/size] NOME_DO_ARQUIVO[/size]);[/size] Fica assim então :[/size] move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $VID); Beraldo, como que eu pego a extensão do vídeo ? Já peguei a extensão, porém está dando um erro na linha 48, embora salve na pasta. Este é o erro: "strict standards. Only variables should be passed by reference. Line 48" linha48: $extensao = strtolower(end(explode('.', $_FILES["file"]["name"]))); move_uploaded_file($_FILES["file"]["tmp_name"], "/upload/". $vid . '.' . $extensao); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 18, 2015 é preciso passar uma variável para end(), não uma função. troque isto: $extensao = strtolower(end(explode('.', $_FILES["file"]["name"]))); por isto: $explode = explode('.', $_FILES["file"]["name"]); $extensao = strtolower(end($explode)); Compartilhar este post Link para o post Compartilhar em outros sites