Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando fazer um upload de arquivo de um formulário Bootstrap
<div class="form-group" id="form">
<label for="upload" class="col-md-1 col-md-offset-2 control-label text-right " onchange="Upload()">Anexar arquivo:</label>
<div class="col-md-6">
<input type="file" id="upload">
</div>
</div>
função javascript
function Upload()
{
$('#cadastro').ajaxForm({
url: 'PHP/upload.php',
type : 'POST'
});
}
função php
<?php
if(isset($_FILES['upload'])){
$ext = strtolower(substr($_FILES['upload']['name'],-4));
$new_name = date('d.m.Y-H.i').$ext;
$dir = 'uploads/';
move_uploaded_file($_FILES['upload']['tmp_name'], $dir.$new_name);
}
?>Desculpe, aparentemente parece tudo em ordem, mas a operação não funciona, e o formulário tem vários campos mas gostaria de enviar somente post desse campo em questão.
Já debugou?
<?php
var_dump( $_FILES );
exit;
E o atributo name no input?
coloquei o name e o var_dump funcionou, só que não esta enviando para o diretório selecionado
Já checou as permissões de pasta? Ao invés de enviar para o upload/, tente mandar pra raiz do projeto e veja o que retorna.
o var_dump é para você nos dizer o que apareceu nele..
e além disso, como já falaram faltou o name no input:
<input type="file" name="upload" id="upload">
Não da pra enviar campos do tipo file com o $.ajax, pra fazer isso você vai ter que usar um plugin que normalmente mascara um iframe e fazem o upload na propria tela, tem vários ai pela internet, so dar uma pesquisada.
tentei por outro método sem ajax, mas no servidor da empresa não funciona, somente em casa.
Qual a dúvida?