v9 Formulário "Documento (Nome de Arquivo)" Acesso inválido ao arquivo

Flagomesh,

Algumas coisa mudaram da v8 para v9 .
Mas acredito que isto não.

Mas devemos fazer algumas considerações.
Para isto tomemos que nosso site é www.exemplo.com.br e o diretório da hospedagem é /var/www/html
Iremos guardar nossos documentos em /var/www/html/doc e imagens em /var/www/html/img

Se seguirmos o que está no manual: http://www.scriptcase.com.br/aprendizagem/documentacao/pt_br/v9/manual/06-aplicacoes/04-aplicacao-formulario/24-aplicacao/#configuração

Caminho dos Documentos : Caminho absoluto onde estão armazenados os documentos da aplicação. -> Caminho real para o sistema operacional
Diretório de Imagens : Diretório base onde estão armazenadas as imagens da aplicação. -> Caminho relativo para o navegador e servidor web

No formulário em Aplicação -> caminho dos documentos. Fica o caminho absoluto ou seja o real acessado via shell o ms-dos, windows explorer, dolphin e etc.
Este caminho será a base onde seu formulário irá trabalhar. Tudo será referenciado com este caminho no formulário.
Como exemplo, vamos tomar o caminho absoluto: /var/www/html/file/doc

Poderá ver que mais embaixo tem o caminho das imagens em: Diretório das imagens.
Este caminho é relativo. Mas relativo ao que? Ao servidor web!
Veja no navegador não digito /var/www/html/img e sim www.exemplo.com.br/img
Logo o caminho relativo para o servidor web e aquele após o domínio.
Então o meu diretório de imagens é somente: /img/

Estes dois caminhos são os “mestres” (a base) para todo o formulário

Agora que terminados esta parte do manual vamos a parte dos campos.

Vou pegar como exemplo http://www.scriptcase.com.br/aprendizagem/documentacao/pt_br/v9/manual/06-aplicacoes/04-aplicacao-formulario/16-campos/#id-27 o campo: Imagem (Nome do Arquivo)

O campo subdiretório é relativo.
Do manual: Subdiretório : Permite informar o subdiretório onde serão armazenadas as imagens. Este subdiretório é relativo ao diretório definido em Diretório de Imagens.É possível o uso de variáveis globais ou locais na formação do nome do subdiretório.

Ou seja se eu preencher algo ali ele irá ficar o caminho que defini em "configurações " -> “caminho das imagens” + o que coloquei aqui.
Se eu não preencher nada irá valer somente o caminho das imagens

Ou seja, se no Imagem (Nome do Arquivo) deixo vazio vale o “caminho mestre da aplicação”. Exemplo: /img/
Se no Imagem (Nome do Arquivo) coloco, por exemplo, o subdiretório /imagens01. A aplicação irá entender que deverá armazenar tudo no: /img/imagens01
Observação: caso o subdiretório imagens01 não exista ocorrerá erro. A menos que deixe a opção Criar subdiretório ativada
Do manual ->Criar subdiretório : Quando ativada essa opção permite a criação do subdiretório caso não exista. Quando ativada essa opção permite a criação do subdiretório caso não exista.

Para o tipo de campo: Documento (Nome do Arquivo) http://www.scriptcase.com.br/aprendizagem/documentacao/pt_br/v9/manual/06-aplicacoes/04-aplicacao-formulario/16-campos/#id-29 o raciocínio é o mesmo.

Ou seja é relativo ao caminho absoluto “mestre” (base) /var/www/html/file/doc.
Se eu deixar vazio vale /var/www/html/file/doc .
Se eu preencher o campo subdiretório com documentos001 valerá /var/www/html/file/doc/documentos001
Observação: caso o subdiretório documentos001 não exista ocorrerá erro. A menos que deixe a opção Criar subdiretório ativada
Do manual ->Criar subdiretório : Quando ativada essa opção permite a criação do subdiretório caso não exista. Quando ativada essa opção permite a criação do subdiretório caso não exista.

Obviamente nestes campos o subdiretório poderá colocar o nome: imagens001, documentos001 ou uma variável global [], campo {}.
Mas lembre-se que sempre será acrescentando aos caminhos já existentes em aplicação -> Configurações -> Caminho dos Documentos ou Diretório de Imagens

Alexandre,

Muito boas suas anotações e por aqui já trabalhamos da forma que você expôs. Meus subdiretórios são relativos (formato ano_mes) e eram definidos por campo {ano_mes}.

O grande porém da questão é que algo que não foi alterado em nada deixou de funcionar na v9.

Mas como eu disse no post anterior, deixei de trabalhar com campo {ano_mes} e passei a trabalhar com variável global [ano_mes] e funcionou.

Então algo mudou no jeito do Scritpcase trabalhar