Ir para conteúdo

POWERED BY:

Arquivado

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

twpesquisa

FTP - MySql

Recommended Posts

Bom dia!

 

Amigos,

 

devido à restrições que o server onde tenho meus clientes hospedados, não é possível realizar uploads de arquivos maiores que 20MB. Descobri que através de FTP é possível enviar esses arquivos grandes, então, gostaria de saber como podemos criar um formulario que salve alguns dados no banco como NOME, DESCRIÇÃO, ARQUIVO (Caminho) e logo depois possa exibir essas informações em um grid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não!

Conforme escrevi, quero realizar o upload e salvar no banco o seguinte:

" salve alguns dados no banco como NOME, DESCRIÇÃO, ARQUIVO (Caminho) e logo depois possa exibir essas informações em um grid. "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Via PHP, você teria que alterar o limite mesmo para upload de arquivos.

 

Mesmo usando a biblioteca FTP, Igor.php, não funcionaria, porque para o PHP poder efetuar as operações de FTP, o arquivo já deve estar no servidor, o que significa que o upload já deveria ter sido feito.

 

Pelo que entendi, malliotti, você precisaria de um aplicativo FTP na máquina do cliente/usuário para enviar esses arquivos para o servidor usando o protocolo FTP, e após o envio chamar alguma rotina em PHP para realizar operações com os arquivos recém enviados.

 

Existem várias maneiras de conseguir isso, mas vou citar duas:

- instalar um WAMP na máquina do cliente com o aplicativo PHP para fazer upload (inviável dependendo da aplicação, e também "meio feio" :D)

- criar um aplicativo FTP para ser executado pelo cliente.

 

Este aplicativo deve ser feito com uma linguagem/ferramenta que possa ser rodada no lado do cliente.

Você pode usar até PHP, mas precisaria do GTK para conseguir fazer rodar como "standalone".

 

Existem implementações em várias linguagens, até para ActionScript (Flash/Flex).

Eu já fiz em Java para empresa onde eu trabalhava.

 

Bom, espero que as dicas ajudem.

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo usando a biblioteca FTP, Igor.php, não funcionaria, porque para o PHP poder efetuar as operações de FTP, o arquivo já deve estar no servidor, o que significa que o upload já deveria ter sido feito.

??

 

leia:

http://wbruno.com.br/blog/2011/03/24/upload-de-arquivo-ftp-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

Acho que você não entendeu a necessidade do nosso amigo.

- Ele precisa enviar um arquivo do cliente para o servidor

- O arquivo poderá ser maior que 20Mb, coisa que o servidor dele não suporta.

 

O conteúdo variável $_FILES está disponível após o upload do arquivo, o que indica que o o arquivo já está no servidor.

Logo, não serve para ele, pois como o servidor dele limita o upload em 20mb, upload convencional não resolve.

 

Me fiz entender?

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay, porém estou achando tudo isso meio confuso.

 

- Ele precisa enviar um arquivo do cliente para o servidor

sim, e para enviar o arquivo via ftp, basta fazer isso aqui:

http://wbruno.com.br/blog/2011/03/24/upload-de-arquivo-ftp-php/

 

- O arquivo poderá ser maior que 20Mb, coisa que o servidor dele não suporta.

qq servidor suporta bem mais que isso, única coisa é que as configurações do php limitam.

 

.htaccess

php_value memory_limit 300M
php_value post_max_size 150M
php_value upload_max_filesize 100M
php_value max_execution_time 1800
php_value session.gc_maxlifetime 3600

 

O conteúdo variável $_FILES está disponível após o upload do arquivo, o que indica que o o arquivo já está no servidor.

não.

Nesse ponto você está errado.

 

$_FILES é um array superglobal, que será criado no instante do envio do arquivo. Durante a requisição de PUT.

O arquivo não está no servidor ainda, mas sendo enviado. O $_FILES é o meio do caminho, entre a máquina do cliente, e o servidor.

 

 

 

Logo, não serve para ele, pois como o servidor dele limita o upload em 20mb, upload convencional não resolve.

configure o servidor, ou entre em contato com o suporte, para aumentar esse limite.

 

 

Eu te entendi, mas agora você me entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

sim, e para enviar o arquivo via ftp, basta fazer isso aqui:

http://wbruno.com.br...rquivo-ftp-php/

 

No exemplo que você passou no site, o cara já fez upload convencional, mano. No caso dele, não passaria porque o servidor bloqueia requisições maiores 20mb.

E isso, no caso dele não resolve.

 

qq servidor suporta bem mais que isso, única coisa é que as configurações do php limitam.

Exato. As configurações bloqueiam, e não são todos os servidor que permitem alteração via .htaccess.

Neste caso (alterar .htaccess) ele deve entrar em contato com o suporte/wiki do servidor e ver se esta opção está disponível (como você também sugeriu mais abaixo).

 

não.

Nesse ponto você está errado.

 

$_FILES é um array superglobal, que será criado no instante do envio do arquivo. Durante a requisição de PUT.

O arquivo não está no servidor ainda, mas sendo enviado. O $_FILES é o meio do caminho, entre a máquina do cliente, e o servidor.

 

Realmente você não entendeu.

O que escrevi foi: O CONTEUDO da variavel, e não a variavel.

Eu sei que $_FILES é uma superglobal e também em que momento ela criada. E não é "durante" a requisição, e sim após o seu processamento pelo módulo PHP (SAPI ou CGI) instalado no webserver (seja apache, IIS, etc). Ou seja, a requisição chega no servidor pelo webserver, é pré-processada e então é chamado o módulo responsável (no caso, PHP).

 

E se eu não envio o arquivo, o conteúdo não é enviado (como eu citei em meu post anterior).

 

E também o $_FILES não é um meio do caminho. Se o conteúdo está preenchido e não há falhas, o arquivo já está, sim, no servidor, em uma pasta temporária ($_FILES['input_do_form']['tmp_name'], por exemplo).

 

Afinal, você tem acesso a ela após a requisição ter sido recebida pelo servidor, e não durante o envio.

Se fosse assim (durante o envio), você ainda teria que ficar tratando no $_FILES quando o envio (progresso do upload) foi finalizado.

 

http://us.php.net/manual/en/features.file-upload.post-method.php

 

These arrays will contain all the uploaded file information

 

Isso indica que o upload já foi feito, e não que está no meio do caminho ;).

 

O "meio do caminho" é a requisição feita ao servidor, que está sendo transmitida. Mas, enquanto ela está sendo transmitida, o PHP ainda não tem acesso a estas informações.

 

configure o servidor, ou entre em contato com o suporte, para aumentar esse limite.

 

Sim, então ele não precisaria de ajuda no fórum de PHP :D.

Veja, o que indiquei como solução, foi para ficar híbrido e não depender do servidor, uma vez que, da forma como sugeri, o upload é feito REALMENTE pelo protocolo FTP, e não um FTP feito depois de um upload convencional, como você está sugerindo em seu post no seu site.

 

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei fantástico as analises... De fato hufersil está correto e o nosso amigo Willian desta vez está equivocado. A sugestão de criar um .htacces foi tentado, porem o servidor restring essa configuração.

O que eu preciso é criar apenas uma ferramenta de FTP simples, onde meu cliente possa escolher o documento/aplicativo e definir um nome (identificação) e com isso salvar em um banco de dados o seguinte:

Nome do arquivo

Descrição do arquivo

Caminho do arquivo

 

Com isso, essas informações são salvas em um banco o arquivo vou enviado para o diretorno definido e depois faço exibir através de uma tela simples o que foi enviado e assim o "cliente" poderá realizar o download desse material.

 

Criar uma tela de cadastro e usando o recurso de UPLOAD eu sei, mas usando o recurso de FTP não faço idéia como seja.

.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

malliotti,

 

Eu aconselho a utilizar Java para esta situação (criação da ferramenta de interface de FTP), que já tem várias bibliotecas que facilitam o trabalho com FTP.

 

Para facilitar o desenvolvimento caso você não tenha muito conhecimento em Java, aconselho também a utilizar a IDE Netbeans, que é gratuita e tem um ótimo suporte a criação de interfaces para o usuário (GUI).

 

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show.. te confesso que nunca usei o Netbeans....

Seria muito, pedir uma ajuda nesta questão, ou seja, me ajudar nessa tela e no codigo que faz o ftp ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem problemas, inicie um tópico na parte de Java, assim fica mais contextualizado ;)

 

Me mande depois o link via MP que fica mais fácil para eu acompanhar.

 

@braços e fique com Deus!

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.