Download de arquivos com espaços

(rayfcrols) #1

Pessoal criei uma especie de thumbnais de pdf e imagens em php, este que a rotina de uploads de arquivos estão funcionando perfeitamente, criando as mini imagens dos pdf e das imagens e jogando pra seus respectivos lugares
Mais eu tenho um pequeno problema, quando eu faço um upload de um arquivo com espaços (EX: Manual do Computador.pdf), na consulta ou seja na aplicação que faz o trumbnail quando clico no link para baixar o arquivo ele vem somente com o nome inicial (EX: Manual) sem a extensão.

O que fazer pra contornar isto?

Lembrando que isto só ocorre quando faço upload de arquivos com espaços…

(ZooSP) #2

pode ser alguma coisa com o código que está usando para isso.

tem como postar o código pra gente dar uma olhadinha?

obrigado

(rayfcrols) #3

ZooSP, não a um código algum na aplicação é uma consulta simples com campos tipo imagens e tipo documentos,

(waae) #4

acontece que por ter espaço, ele “corta” o link do arquivo onde ele encontra esse espaço…
Isso acontece com qualquer link na internet… voce não consegue acessar por exemplo:
www.seu dominio.com.br ou www.seudominio.com.br/pagina de teste.php
o certo seria:
www.seu_dominio.com.br ou www.seudominio.com.br/pagina_de_teste.php

Nesse caso, seria melhor vc criar uma rotina pra renomear esses arquivos antes do upload ou instruir seus clientes que no ambiente Web não podemos trabalhar com os arquivos dessa forma.

Aos meu clientes aconselho:
Nada de espaços…
Nada de acentos…
Nada de caracteres especiais (%,*,$…)…

Espero ter ajudado…

(rayfcrols) #5

Entendi, por acaso v/c teria uma rotina no qual impedisse de fazer o upload do arquivo que contenhas estas condiçoes?

(waae) #6

Impedir eu não sei…

Mas vc poderia usar a função rename no evento “onafter insert” (depois que já inseriu o registro e o upload já foi feito):
http://www.php.net/manual/pt_BR/function.rename.php

depois vc usa a macro sc_exec_sql("update… para atualizar seu banco de dados com o novo nome do arquivo.

Assim ele renomeia somente o arquivo já lah no seu FTP e atualiza o nome dele no bando de dados.

nesse topico… tem um exemplo bem lah no fim do tratamento:
http://www.netmake.com.br/forum/index.php?topic=1904.0

Nunca cheguei a fazer isso, mas é interessante… qualquer duvida, volte a postar aki!!
Se der certo tb!!
T+

(rayfcrols) #7

waee, teria sim tenho uma ideia mais não to conseguindo que funcione…

No evanto OnValidade ou ate no próprio OnBeforeInsert:

if(!preg_match(’/[^0-9A-Za-z]/’,$link_doc_nome)){
sc_error_message(“ATENÇÃO: não são permitidas(os) arquivos com acentuações ou espaços
“);
unlink($this->Ini->path_doc.”/”.[cod_prof]."/".{link_documento});
sc_error_exit();
}

Creio que meu problema e não saber criar uma Expressões Regular que teste que o campo tenha somentes caracteres válidos (EX: A-Z, a-z, 0-9, _ , - )…

(rayfcrols) #8

Pessoal resolvi temporariamente com a função ctype_alnum

EX:
if (!ctype_alnum($link_doc_nome)){
echo “Possuí caracteres não alfa-numericos”;
}

Mais ainda aguardo um solução melhor…

(Tiago Kirsten) #9

Bom dia, no SC existe uma opção de se retirar espaços, acentuação, etc, na parte “FORMATAÇÃO DE VALORES” em “Caracteres Permitidos” você coloca “Selecionados”, ai você escolhe os que poderão ser utilizados no campo.

Abraço
Tiago Kirsten

(George Carvalho) #10

Tiago,

Está opção é para aplicação FORM, não se aplica ao problema do colega.

George Carvalho