Ir para conteúdo

POWERED BY:

Arquivado

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

William Bruno

Upload múltiplos arquivos ftp

Recommended Posts

É o seguinte galera, meu problema inicial é fazer um multiplo upload(no máximo de 50 arquivos em uma só página), mas a cliente me garante que só precisará de 0 até 10.

Lógico que não vou pedir para que me dêem esse código pronto.. então se pelo menos puderem me indicar o erro, ou algum script melhor, eu já fico agradecido.

 

Estou usando este do livro do Niderauer, mas como não achei nada sobre errata dele, resolvi pedir ajuda aqui.

 

Bom, eu digitei tudo certinho, debuguei o código, e oque não acho como arrumar é que me retorna o seguinte:

Warning: ftp_put() [function.ftp-put]: /up/casual.jpg: No such file or directory in /xxx/up/executa_upload.php on line 54

A linha em questão é a seguinte:

$upload = ftp_put($id_conexao, $arquivo_destino, $arquivo_temporario, FTP_BINARY);
Já tentei de tudo, até colocar caminhos absolutos, no 2° e 3° parâmetro.. mas nada..

as variáveis $arquivo_destino e $arquivo_temporario:

$arquivo_destino = "$caminho_absoluto/$nome_arquivo";
$arquivo_temporario = $_FILES['arquivo']['tmp_name'];
$caminho_absoluto = "/up";
$nome_arquivo = $_FILES['arquivo']['name'];

Grato. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, existe. Eu criei essa pasta em todos os niveis possíveis... e nada.

upload.php

<html>
<head>
</head>
<body>
<form method="post" action="executa_upload.php  " enctype="multipart/form-data">
	<input type="hidden" name="max_file_size" value="200000" />
	Arquivo: <input type="file" name="arquivo" size="30" />
	<input type="submit" value="Enviar Arquivo" />
</form>
</body>
</html>
executa_upload.php
CODE
<html>

<head>

</head>

<body>

<?php

set_time_limit(0);

include "config_upload.inc";

 

$nome_arquivo = $_FILES['arquivo']['name'];

$tamanho_arquivo = $_FILES['arquivo']['size'];

$arquivo_temporario = $_FILES['arquivo']['tmp_name'];

//$arquivo_temporario = "C:\Documents and Settings\Bruno\Desktop\casual.jpg";

 

if(!empty($nome_arquivo)){

if($sobrescrever == "nao" && file_exists("$caminho_absoluto/$nome_arquivo"))

die("Arquivo já existe.");

 

if(($limitar_tamanho == "sim") && ($tamanho_arquivo > $tamanho_bytes))

die("Arquivo deve ter no máximo $tamanho_bytes bytes.");

 

$ext = strrchr($nome_arquivo,'.');

if($limitar_ext == "sim" && !in_array($ext, $extensoes_validas))

die("Extensão de arquivo inválida para upload.");

 

// abre uma conexão FTP

$id_conexao = ftp_connect($servidor_ftp);

// realiza o login com o nome de usuário e senha

$login = ftp_login($id_conexao, $usuario_ftp, $senha_ftp);

//verifica se houve sucesso na conexão

if((!$id_conexao) || (!$login)){

echo "Não conectou";

}

else

echo "Usuário $usuario_ftp conectado";

 

// faz o upload do arquivo

//$arquivo_destino = "./up/casual.jpg";

$arquivo_destino = "$caminho_absoluto/$nome_arquivo";

$upload = ftp_put($id_conexao, $arquivo_destino, $arquivo_temporario, FTP_BINARY);

 

 

// verifica se houve sucesso no upload

if(!$upload)

echo "O up falhou";

else

echo "sucesso";

// Fecha a conexão FTP

 

ftp_close($id_conexao);

}

else

die("Selecione o arquivo a ser enviado");

?>

</body>

</html>

config_upload.inc
CODE
<?php

// Parâmetros de configuração da operação

 

// Configurações do servidor FTP

$servidor_ftp = "xxx";

$usuario_ftp = "xxx";

$senha_ftp = "xxx";

 

// Limitar as extensões? (sim ou nao)

$limitar_ext = "sim";

// extensões autorizadas

$extensoes_validas = array(".gif",".jpg",".jpeg",".bmp");

// camiho absoluto onde os arquivos serão armazenados

$caminho_absoluto = "/up";

 

 

// Limitar o tamanho do arquivo? (sim ou nao)

$limitar_tamanho = "nao";

// tamanho limite do arquivo em bytes

$tamanho_bytes = "200000";

 

//se já existir o arquivo, indica se ele deve ser sobrescrito (sim ou nao)

$sobrescrever = "nao";

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu fiz autenticação dele com uma sessão. O programa roda..

e como eu definiria a "permissão do programa acessar pasta"??

 

não achei nada desse tipo no server..

Minhas pastas:

Imagem PostadaEu acabei criando 2 tópicos, me desculpe, se tiver como deletar..

http://forum.imasters.com.br/index.php?showtopic=293632

O servidor é Linux mesmo, mas não entendo nada... e nem sei como abrir o terminal..

eu uso Windows XP, e estou acessando o FTP pelas pastas dele, crio pastas e movo arquivos dessa forma. Como defino permissões? Achei algo como "777", mas ainda não entendi onde por isso.

Consegui dar permissão de "Gravar", para Proprietário, Grupo e Todos Usuários Mas ainda continua me retornando o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma conta FTP não pode usar diretorios acima de seu nivel root

 

até pode liberar, mas não conveniente por questões de segurança

 

o ideal seria que você trabalhasse dentro de uma pasta que esteja nos diretorios do path da conta FTP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... não sei.. vou pesquisar sobre o ftp_put..

Mas depois eu descobri que o problema é na declaração do "caminho absoluto" para o destino. Veja, fazendo somente o seguinte:

$arquivo_destino = "$nome_arquivo";

O script é perfeito, e a imagem vai para o mesmo diretório do programa php. Portanto, o erro está em como eu estava declarando o caminho.. e tentando concatenar as strings.

Pois essa variável, não funciona de jeito nenhum com o resto do script:

$caminho_absoluto = "/up";

 

No fim das contas, eu desisti de fazer isso, a cliente me disse que não era mais necessário. Enfim, na próxima vez em que eu precisar disso, eu vejo como vou fazer.. Pode fechar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tiu uiLL

 

Esses scripts do juliano da pau mesmo cara nem baixado pela net, com a senha dos livros comprei o PHP para quem conhece PHP POR por causa do FPDF

 

quem disse que funfa o script do cara <_< , isso por ja baixo direto do link

 

mas tirando isso e muito bom e outros ainda não testei.

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.