josef33 0 Denunciar post Postado Julho 26, 2012 Pessoal, tenho um form que esta funcionando ok, niceform-v2.0-jquery, só que ele tem a opção de envio de arquivo para meu servidor , mas não funciona....abaixo partes do código que estou tentando usar para upload: Alguma dica do erro: :thumbsup: PHP de envio: <?php $upload= $_POST["upload"]; upload: $upload ?> HTML: <dl> <dt><label for="upload">Enviar Arquivo:</label></dt> <dd><input type="file" name="upload" id="upload" /></dd> </dl> Grato mesmo :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Julho 26, 2012 http://gr.php.net/manual/pt_BR/reserved.variables.files.php http://gr.php.net/manual/pt_BR/reserved.variables.files.php Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Julho 26, 2012 Olá, diferente dos outros campos, os valores dos campos do tipo file ficam armazenados no array $_FILES, ao invés do array $_POST. A estrutura do array $_FILES é a seguinte: array (5) 'name' {$key} 'type' {$key} 'tmp_name' {$key} 'error' {$key} 'size' {$key} Onde 'name' é nome do arquivo 'type ' o tipo 'tmp_name' é o caminho temporário que deve ser passado para a função move_uploaded_file() para transferir o arquivo para o diretório onde ele deverá ficar armazenado 'error' é um inteiro que informa se ocorreu um erro no upload. UPLOAD_ERR_OK significa que não houve nenhum erro. 'size' o tamanho do arquivo em bytes. $key é um indice de array, que começa em zero. Se você fez o upload de um arquivo, o nome dele estará em $_FILES['name'][0]. Para que tudo funcione, o formulário (elemento 'form') deve ter o atributo 'enctype' com o valor "enctype="multipart/form-data". Ex.: <form action="" method="post" enctype="multipart/form-data" /> Um exemplo de como se deve fazer um upload de arquivos // Pasta onde os arquivos de upload serão armazenados $uploads_dir = '/uploads'; foreach ($_FILES["upload"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { // UPLOAD $tmp_name = $_FILES["upload"]["tmp_name"][$key]; $name = $_FILES["upload"]["name"][$key]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); } else { echo "Ocorreu um erro ao fazer upload do arquivo: " . $name; } } Compartilhar este post Link para o post Compartilhar em outros sites
josef33 0 Denunciar post Postado Julho 26, 2012 mangakah obrigado, eu não entendi o 'tmp_name' é o caminho temporário, na minha máquina? mas eu não uso minha máquina pra isso, eu tenho um site hospedado e meu form esta direcionado para meu email no gmail..... Grato Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Julho 27, 2012 mangakah obrigado, eu não entendi o 'tmp_name' é o caminho temporário, na minha máquina? mas eu não uso minha máquina pra isso, eu tenho um site hospedado e meu form esta direcionado para meu email no gmail..... Grato Não. É o nome do arquivo temporário no servidor. Durante o upload, o PHP vai armazenando o arquivo na pasta definida na diretiva upload_tmp_dir, no arquivo de configurações (php.ini). Você pode saber qual pasta o PHP está usando para armazenar arquivos temporários com o seguinte código: echo sys_get_temp_dir(); Como eu já disse, esse caminho deve ser passado para a função move_uploaded_file para transferir esse arquivo temporário para um outro local físico no disco do servidor, geralmente dentro do diretório raiz de seu site, onde esse arquivo possa ser acessado pelos seus visitantes. Se o seu formulário está direcionado para um email, então você não pode fazer upload de arquivos, o seu email não irá aceitar. Você pode usar PHP para colocar essa 'foto' como anexo a uma mensagem e enviá-la para seu email usando PHP, mesmo assim você terá de direcionar seu formulário (atributo 'action') para um arquivo PHP que fará a anexação da foto e o envio da mensagem. Mas para que isso funcione, é preciso que o email esteja configurado corretamente em seu servidor e que o PHP tenha acesso a ele. Faça o teste enviando uma mensagem: $enviado = @mail('seu-email@gmail.com', 'Testando', $message); if (!$enviado) { echo "Erro ao enviar email: " . print_r(error_get_last(), true); // Se ocorrer o erro, a saída do script aqui. } Não se esqueça de trocar 'seu-email' pelo seu nickname no Gmail. Compartilhar este post Link para o post Compartilhar em outros sites
josef33 0 Denunciar post Postado Julho 27, 2012 Pessoal, tenho um form que esta funcionando ok, niceform-v2.0-jquery, só que ele tem a opção de envio de arquivo para meu servidor , mas não funciona....abaixo partes do código que estou tentando usar para upload: Alguma dica do erro: :thumbsup: PHP de envio: <?php $upload= $_POST["upload"]; upload: $upload ?> resolvido com http://valums.com/ajax-upload/ HTML: <dl> <dt><label for="upload">Enviar Arquivo:</label></dt> <dd><input type="file" name="upload" id="upload" /></dd> </dl> Grato mesmo :thumbsup: resolvido com http://valums.com/ajax-upload/ Compartilhar este post Link para o post Compartilhar em outros sites