Javascript e Banco de Dados
Galera, simplesmente não manjo NADA de Javascript e estou começando agora em PHP.
Eu estou com um código aqui que é PHP + Javascript para fazer upload de arquivos e estou com algumas dúvidas...
A situação atual é a seguinte: O usuário entra na página, clica em Procurar e seleciona um arquivo para fazer o Upload. Logo quando ele clica em abrir, o upload já começa. Quando termina aparece a mensagem "Upload concluido".
Porém, eu preciso que o script faça um cadastro no banco de dados com os dados do arquivo (URL, Nome) e do usuário que fez o upload (SESSION) e depois disso imprima para o usuário a URL p/ download do arquivo.
Alguém tem alguma idéia de como fazer isso sem a interação do usuário??? (a única interação dele é escolher o arquivo)
A estrutura das páginas é a seguinte:
Index.php (Parte do código JS)
<script type="text/javascript">
var swfu;
// ao carregar a página, chama o swfupload
window.onload = function() {
var settings = {
flash_url : "swfupload/core/Flash/swfupload.swf", // caminho do flash usado pelo sistema
upload_url: "upload.php", // url do php para upload
post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"}, // parâmetros extras.
file_size_limit : "300 MB", // limite de envio de arquivo em megas
file_types : "*.*", // tipos de arquivos permitidos> *.jpg; *.png; *.gif;
file_types_description : "Todos os arquivos", // Descrição da caixinha de arquivos permitidos
file_upload_limit : 100, // quantidade limite de upload de arquivos
file_queue_limit : 3, // limite de marcação de arquivos para upload
file_post_name: "uplfile", // Nome da variável que envia o conteudo do arquivo
custom_settings : {
progressTarget : "fsUploadProgress", // configurações do botão cancelar
cancelButtonId : "btnCancel"
},
debug: false, // debug do sistema, marque true para debugar o envio e corrigir erros
// Button settings
button_image_url: "swfupload/images/TestImageNoText_65x29.png",// imagem do botão procurar
button_width: "65", // largura do botão procurar
button_height: "29", // altura do botão procurar
button_placeholder_id: "spanButtonPlaceHolder", // id do elemento que conterá o botão procurar
button_text: 'Procurar',
// Html de dentro do botão procurar
button_text_style: ".theFont { font-size: 16; }", // style do botão
button_text_left_padding: 9, // espaçamento esquerdo do botão
button_text_top_padding: 3, // espaçamento direito do botão
// Estes eventos são definidos em handlers.js
file_queued_handler : fileQueued, // ao selecionar arquivos
file_queue_error_handler : fileQueueError, // erro ao adicionar erros
file_dialog_complete_handler : fileDialogComplete, // seleção do arquivo completo ( somente um )
upload_start_handler : uploadStart, // início do upload
upload_progress_handler : uploadProgress, // progresso do upload
upload_error_handler : uploadError, // erro do upload
upload_success_handler : uploadSuccess, // sucesso do upload
upload_complete_handler : uploadComplete, // upload completo ( todos )
queue_complete_handler : queueComplete // seleção de todos os arquivos completo
};
swfu = new SWFUpload(settings); // envia as configurações para a classe
};
</script>
Upload.php:
# instanciamos a classe
$upload = new Upload();
pasta que será enviada o arquivo
$upload->caminhoArquivo = 'uploads/';recuperamos o nome do arquivo
$upload->nomeArquivo = $_FILES['uplfile']['name'];extensão do arquivo
$upload->extArquivo = end(explode(".",$upload->nomeArquivo));arquivo temporario que está sendo enviado
$upload->arquivoTemporario = $_FILES['uplfile']['tmp_name'];envia o arquivo e retorna se tiver erro
die($upload->enviarArquivo());upload.class.php:
<?
class Upload {
public $nomeArquivo;
public $conteudoArquivo;
public $caminhoArquivo;
public $arquivoTemporario;
public function __construct (){
$this->nomeArquivo = '';
$this->conteudoArquivo = '';
$this->caminhoArquivo = './';
$this->arquivoTemporario = '';
}
/**
* Método que grava o conteudo no arquivo via fopen
*/
public function enviarArquivo () {
# cria o caminho do arquivo
$arquivo = $this->caminhoArquivo.$this->nomeArquivo;
# recuperamos o conteudo do arquivo enviado
$this->conteudoArquivo = file_get_contents($this->arquivoTemporario);
# escreve no arquivo, com o conteúdo desejado, usando este método de escrita
$ponteiro = fopen($arquivo, 'wa');
fwrite($ponteiro, $this->conteudoArquivo);
fclose($ponteiro);
}
}
?>
Se quiserem posto os outros arquivos .js aqui se for o caso.
Obrigado desde já!
Discussão (2)
Carregando comentários...