Dê uma olhada em file_save_upload () e as funções que o chamam.
A função manipulará a validação do arquivo e o salvará em um novo local. No Drupal 7, isso também adiciona o arquivo à tabela gerenciada por arquivo.
Observe que o arquivo será armazenado como um arquivo temporário; portanto, defina o status do arquivo como permanente posteriormente.
Provavelmente, você deseja implementar a função file_save_upload dentro do gancho de validação do formulário (antes do manipulador de envio), para poder alertar o usuário se o upload do arquivo falhar ou se não atendeu aos seus requisitos de validação.
Se o nome do campo de imagem que você está tentando validar for image
, o primeiro parâmetro de file_save_upload deve ser image, como tal:
$ path = file_save_upload ('imagem', ...);
Essa função retornará o caminho no servidor para o qual a imagem foi carregada (para que você possa, por exemplo, armazenar esse caminho em um campo de banco de dados personalizado).
$form['#attributes']['enctype']
no Drupal 7. É feito automaticamentemultipart/form-data
drupal 7, ele é construído no drupal 7 ao usar um campo de arquivo.$file === null
, o que significa queno file was uploaded
(de acordo com as especificações: api.drupal.org/api/drupal/includes!file.inc/function /… ) O que devo fazer nesse caso? Como posso depurar esse tipo de coisa?Eu tenho uma função de validação genérica que uso principalmente em temas que precisam oferecer suporte ao upload de imagens. Você pode usá-lo como ele ou com pequenas alterações, mas isso deve levá-lo longe.
Usando esta função, você obterá o caminho do arquivo como o valor no manipulador de envio de formulários. Você pode querer o ID do arquivo, dependendo do seu uso.
fonte