Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

diokhan

upload

Mensagens Recomendadas

diokhan

boas,

há forma de fazer um form de upload sem o botão "procurar" que vem pré definido? ou fazer um upload de ficheiros só com um botão? eu clicava num botão escolhia o ficheiro e automaticamente fazia o upload com apenas um click :hmm:


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

boas,

basicamente, o que eu preciso é criar um form para upload de ficheiro mas só com um click, clico num botão para pesquisar o ficheiro e quando fizer abrir automaticamente faz o upload do ficheiro, eu ando a procurar no Google mas ainda nada do que preciso


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

Costumo usar este : http://valums.com/ajax-upload/

e por exemplo, como posso passar uma variável pelo action do ajax? que eu preciso passar um valor "$id" para efectuar o upload do ficheiro, que eu leio o ficheiro e faço um parse do ficheiro e guardo na tabela, mas relaciono sempre os dados com um id do projecto e passo pelo link o $id, como posso fazer por este script?

sei que é no ficheiro: ajaxupload.js

nesta linha:

window.AjaxUpload = function(button, options){
        this._settings = {
            // Location of the server-side upload script
            action: './Quality/qualityRead.php',


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

pode ser assim:

action: './Quality/qualityRead.php?id=$idProject', 

que eu coloquei assim e sempre que selecciono o ficheiro não faz nada :hmm:


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

sim, é uma variável que vem do php, eu tenho assim:

include ("./Quality/fileRead.php?id=$idProject");

e no fileRead.php:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css" type="text/css" media="all" />
    <script type="text/javascript" src="./javascript/ajaxupload.js"></script>

    <style type="text/css">
        h1 {color: #C7D92C;	font-size: 18px; font-weight: 400;}
        a {	color: white;}
        a:hover, a.hover {color: #C7D92C;}
        #text {	margin: 25px; }
        ul { list-style: none; }
        .example { padding: 0 20px; float: left; width: 230px; }
	.wrapper { width: 133px; margin: 0 auto; }
	div.button {
		height: 29px;	
		width: 133px;
		background: url(./images/button.png) 0 0;
		font-size: 14px; color: #C7D92C; text-align: center; padding-top: 15px;
	}
	div.button.hover {
		background: url(./images/button.png) 0 56px;
		color: #95A226;	
	}
	#button2.hover, #button4.hover { text-decoration:underline; }
</style>

<script type="text/javascript">/*<![CDATA[*/
$(document).ready(function(){

	var button = $('#button1'), interval;

	new AjaxUpload(button, {
		action: './Quality/qualityRead.php?id=$idProject', 
		name: 'myfile',
		onSubmit : function(file, ext){
			// change button text, when user selects file			
			button.text('Uploading');

			// If you want to allow uploading only 1 file at time,
			// you can disable upload button
			this.disable();

			// Uploading. -> Uploading.. -> Uploading...
			interval = window.setInterval(function(){
				var text = button.text();
				if (text.length < 13){
					button.text(text + '.');					
				} else {
					button.text('Uploading');				
				}
			}, 200);
		},
		onComplete: function(file, response){
			button.text('Upload');

			window.clearInterval(interval);

			// enable upload button
			this.enable();

			// add file to the list
			//$('<li></li>').appendTo('#example1 .files').text(file);						
		}
	});

});/*]]>*/</script>
</head>
<body>
<ul>
<li id='example1' class='example'>
    <div class='wrapper'>
		<div id='button1' class='button'>Upload</div>
	</div>
</li>
</ul>
</body>
</html>

sei que passar variáveis entre php e ajax não é da mesma forma que php, mas eu não sei como passar a variável


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

agora desapareceu-me o boão :P

mas não é por causa desta alteração, que eu voltei a repor como estava e o botão onde deveria aparecer o upload desapareceu mesmo


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

já usei, não vi nenhum erro referente a esta situação, coloquei assim o meu código e já aparece o botão, mas não faz o que quero, ele lê o ficheiro mas não efectua o parse ao ficheiro, e eu sei que funciona porque já o tinha feito e a funcionar antes

require_once ("./Quality/fileRead.php");

assim ja aparece o botão, mas se tento passar por aqui o $idProject o botão desaparece :P


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

já separei o código, posso estar a fazer algo de errado, se eu tento passar a variável $idProject o botão desaparece, mas sem a variável mesmo depois de seleccionado o ficheiro nada faz, mas gostaria de perceber o erro para aprender algo :hmm:


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

não, se eu passar a variável o botão desaparece, e mesmo no firebug não acusa erro, e se não passar a variável aparece o botão mas não faz nada ao seleccionar o ficheiro


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

eu estou a usar o exemplo deles, uso o script onde criam o botao e uso um outro ficheiro, ajaxupload.js, e neste ficheiro há esta linha:

action: './Quality/qualityRead.php?id=<?php echo $idProject; ?>',

que eu também alterei para ficar igual ao outro lado, não sei se é necessário este ficheiro mas também uso. Quanto ao resto eu não mudei quase nada :hmm:


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

andei a alterar o código, agora o firebug devolve este erro do script:

if ( ! button || button.nodeType !== 1){
            throw new Error("Please make sure that you're passing a valid element"); 
        }

mas nao sei a que se refere este erro, é no ficheiro ajaxupload.js linha 287


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.