Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elemke

Upload com Uploadify

Recommended Posts

Prezados,

 

Alguém já utilizou o puglin jQuery Uploadify para fazer upload de arquivos? Se sim, conseguiram colocar outros inputs no formulários e enviar via post?

 

Meu Problema: Consegui implementar o plugin, porém, não consigo enviar outros dados de input via poat. Já olhei a documentação e não obtive sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue código de implementação:

 

OBS: Coloquei observação no imput que preciso recuperar o arquivo uploadify.php.

 

 

<!DOCTYPE html>
<html>
<head>
   <title>teste</title>
   <link rel="stylesheet" type="text/css" href="uploadify.css">
   <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
   <script type="text/javascript" src="jquery.uploadify-3.1.min.js"></script>
   <script type="text/javascript">
   $(function() {
       $('#file_upload').uploadify({
    'swf'      : 'uploadify.swf',
           'uploader' : 'uploadify.php',
    'auto'     : false,

       });
   });
   </script>
</head>
<body>
<input type="text" id="nome" name="nome" /> //preciso recuperar esse valor no uploadify.php
<input type="file" name="file_upload" id="file_upload" />
<p><a href="javascript:$('#file_upload').uploadify('upload')">Upload Files</a></p>

</body>
</html>

 

Arquivo

 

<?php
require_once  ("conexao.php");

$targetFolder = '/upload/uploads'; // Relative to the root

if (!empty($_FILES)) {

$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];

// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);

if (in_array($fileParts['extension'],$fileTypes)) {
	move_uploaded_file($tempFile,$targetFile);
	echo '1';
} else {
	echo 'Invalid file type.';
}

$a = $_POST['nome']; //não estou recebendo os dados aqui
mysql_query("INSERT INTO teste values($a)");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quebrei cabeça com o Uploadify, eu precisava inserir um campo de descrição no form, consegui modificando essa parte do Uploadify:

 

jQuery(this).bind("uploadifyComplete", {'action': settings.onComplete}, function(event, ID, fileObj, response, data) {
				if (event.data.action(event, ID, fileObj, unescape(response), data) !== false) {
				   //console.log(fileObj);
					jQuery("#" + jQuery(this).attr('id') + ID).find('.percentage').text(' - Completo');
                      // minha moficação
                       p = $.post('saveUploadData.php',{
                           'filedescription': $("#file_upload"+ ID).find('#filedescription_'+ID).val(),
                           filename:fileObj.name,
                           src:fileObj.filePath.replace('/mareto/',''),
                           owner:$("input[name='user_folder']").val(),
                           ext:fileObj.type,
                           filedescription:$("#file_upload"+ID).find("#filedescription_"+ID).val()
                       },function(data){
                           //console.log(data);
                       },'json');
                       //console.log(p);
                      // minha moficação
					if (settings.removeCompleted) {
						jQuery("#" + jQuery(event.target).attr('id') + ID).fadeOut(250,function() {jQuery(this).remove()});
					}
					jQuery("#" + jQuery(event.target).attr('id') + ID).addClass('completed');
				}
			});

 

Com isso ai consegui que ao final do upload de cada arquivo seja enviado um outro post com os dados que eu quero, além de ainda ter a possibilidade de pegar os dados do arquivo atual caso precise. É uma gambiarra eu sei, mas foi o jeito que consegui, vê ai se serve pra ti.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo eu fiz assim...

 

<script type="text/javascript">
$(document).ready(function() {
var total = 0;
$('#file_upload').uploadify({
	'uploader'  : 'js/uploadify/uploadify.swf',
	'script'    : 'js/uploadify/uploadify.php?f=uploads/arquivos',
	'cancelImg' : 'js/uploadify/cancel.png',
	'folder'    : 'uploads/arquivos',
	'fileDesc'  : 'Imagens',
	'fileExt'   : '*.jpg;*.png;*.bmp;*.gif;*.jpeg;*.JPG;*.PNG;*.BMP;*.GIF;*.JPEG'.'*.mp3',//Aqui você adiciona a extesao dos arquivos
	'auto'      : false,
	'multi'     : true,
	'buttonText': 'Selecionar Arquivo',//Nome do button de enviou
	'onComplete'  : function(event, ID, fileObj, response, data) {
                       total = total + 1;
		var arquivo = response;
		var nome = document.getElementById('nome').value;//Aqui os potes que você que enviar exemplo nome
		var destino = 'upload.php?t=arquivo&arquivo='+arquivo+'&nome='+nome+';//Aqui do destino do post
		document.getElementById('salvar').src=destino;
	},
	'onAllComplete' : function(event,data) {
		);
	}
});
   $('.lightbox').lightBox();
});
</script>


agora o arquvo upload.php

<?php
include "conexao.php";
$tipo = $_GET["t"];
function retirar($string) {
$palavra = ereg_replace("[^a-zA-Z0-9_]", "", strtr($string, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));
return $palavra; 
}
if ($arquivo == "arquivo") {
$nome = $_GET["nome"];
mysql_query("INSERT INTO fotos VALUES ('', '$foto', '$desc', '$album', '$autor')");
}
?>
<?php
if (!empty($_FILES)) {
$folder = $_GET["f"];
$tempFile = $_SERVER['DOCUMENT_ROOT'] . $_FILES['Filedata']['tmp_name'];
$targetPath =  'Aqui você coloca a raiz do site' . $folder . '/';// Exemplo /home/marcos/localhost/social
$targetPath =  'Aqui a raiz mais a pasta de salva o arquivo';//Exemplo /home/marcos/localhost/social/uploads/fotos/
$arquivo_nome = $_FILES['Filedata']['name'];
$arquivo = retirar2($arquivo_nome);
$targetFile =  str_replace('//','/',$targetPath) . $arquivo_nome;

$fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
$fileTypes  = str_replace(';','|',$fileTypes);
$typesArray = split('\|',$fileTypes);
$fileParts  = pathinfo($_FILES['Filedata']['name']);

if (in_array($fileParts['extension'],$typesArray)) {
	// Uncomment the following line if you want to make the directory if it doesn't exist
	// mkdir(str_replace('//','/',$targetPath), 0755, true);
	if (move_uploaded_file($tempFile,$targetFile)) {
	echo 'Arquivo enviado com sucesso!';
	}else{
	echo 'Erro ao tentar enviar o arquivo!';
	}
} else {
 	echo 'Tipo de arquivo nao permitido!';
}
}
?> 

tenta ai aqui deu '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com o mesmo problema no meu caso eu estou criando uma galeria de fotos que precisa gravar a variável no banco mas não estou conseguindo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com o mesmo problema no meu caso eu estou criando uma galeria de fotos que precisa gravar a variável no banco mas não estou conseguindo!

 

Poderia ser mais especifico quanto a: gravar a variável?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possuo duas tabelas, uma que registra o album e a outra que registra fotos, ambos tem em comum o campo album como chave primaria para o relacionamento entre tabelas, quando eu insiro as fotos, escolho o album pelo drop down, quando faço a inserção pelo uploadify ele não passa a variável album que eu defino para a outra página para que possa ser gravado juntamente com as fotos, entendeu?

 

--------------------------------CÓDIGO HTML-----------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastro de Album</title>
<link rel="stylesheet" type="text/css" href="uploadify.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.uploadify-3.1.min.js"></script>
<script type="text/javascript">
		$(function() {
	    $("#file_upload").uploadify({
	    	'method'   :'post',
	        'auto'     : false,
	        'buttonText': 'SELECIONAR IMAGENS',
	        'width'    : 180,
	        'swf'      : 'uploadify.swf',
	        'uploader' : 'cadastrando_imagem_exe.php',
	    });
	});

</script>
<body>
<div class="seleciona_album">

	<form action="cadastrando_imagem_exe.php" name="form3" method="POST" id="form3" enctype="multipart/form-data" >

			<label>Album</label>
				<select name="album" >
					<?php
include('conexao.php');
mysql_select_db("alisson");
 $result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
						    echo '<option value="'.$row["id"].'">'.$row["nome"].'</option>';
																  }


							[b]$album = $_POST['album'];[/b]
					?>
				</select><p>
			<label>Enviar Foto: </label><br/>

			<input type="file" name="file_upload" id="file_upload" /><br>
			<input type="hidden" name="album" value="<?php echo $album ?>" />
			[b]<a href="javascript:$('#file_upload').uploadify('upload')">Enviar</a>[/b]
	</form>



</div>

</body>
</html>

 

ARQUIVO DE EXECUÇÃO DO PHP

<?php
mysql_connect("localhost","root","") or die("Erro ao tentar conectar com o banco de dados");
mysql_select_db("alisson");
//Essa parte rodará apos dar um submit.


$targetFolder = 'uploads';
     $nome       = $_FILES['Filedata']['name'];
     $album      = $_POST['album']; 
     $tempFile   = $_FILES['Filedata']['tmp_name'];
     $targetPath = $targetFolder;
     $targetFile = rtrim($targetPath) . '/' . $nome;

       // Validate the file type
       $fileTypes = array('jpg','jpeg','gif','png'); // File extensions
       $fileParts = pathinfo($nome);

         if (in_array($fileParts['extension'],$fileTypes)) {
           move_uploaded_file($tempFile,$targetFile);
         } else {
           echo 'Invalid file type.';
         }
$album = $_POST['album'];                                      
$sql = "INSERT INTO fotos(album,foto) VALUES('$album','$nome')";
mysql_query($sql);




echo "<script>alert('Imagem cadastrada com sucesso');window.location='cadastrando_album.php';</script>";


?>

 

 

 

----------------------------------------------------------------------------------------------------------------

 

 

Eu já tentei mandar por GET também!

Vlw ae pelo auxilio sou bem novo nessa área!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você for editar, precisa mandar o id da galeria. Então... Defina uma variável recebendo o id da galeria e faça assim:

 

'uploader' : 'cadastrando_imagem_exe.php?id=<?php echo $id_galeria; ?>',

 

E pelo que entendi, a $album no arquivo de execução serve para gravar o id da galeria? Se for, pegue o id enviado pelo get e grave ele. Ao invés de usar:

 

$album      = $_POST['album'];

 

Faça isso:

 

$album      = $_GET['id_galeria'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possível e só você passar o paramento do id dentro do 'uploader':

 

ex:

 

$id_galeria = "10";

<script type="text/javascript">
	<?php $timestamp = time();?>
	$(function() {
		$('#file_upload').uploadify({
			'formData'     : {
				'timestamp' : '<?php echo $timestamp;?>',
				'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',

			},
			'swf'      : 'plugins/ativos/multiplo_upload/uploadify.swf',
			'uploader' : '<?php echo "plugins/ativos/multiplo_upload/uploadify_alterar.php?id=$id_galeria" ?>'
		});
	});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.