2012-12-20 103 views
2

我不明白,谷歌也不給我答案。我想上傳一個文件,結果顯示在沒有頁面重新編譯的div中,但我無法得到它!jQuery和php文件上傳

HTML:

<form method="post" action="process/pic2.php" enctype="multipart/form-data" id="userpic"> 
<p>Izvēlies bildi: <input type="file" name="img_to_upload" /><input type="submit" name="upload" value="Augšupielādēt" /></p> 
</form> 

的jQuery:

jQuery(function(){ 
     jQuery('#userpic').submit(function(){ 
      jQuery.ajax({ 
       type: 'POST', 
       enctype: 'multipart/form-data', 
       url: jQuery('#userpic').attr('action'), 
       data: jQuery('#userpic').serialize(), 
       success: function(data){ 
        if(data){ 
         jQuery('#picinfo').html(data); 
        }else{ 
         jQuery('#uerpic').fadeOut(500); 
         jQuery('#picinfo').html('<center><img src="img/loader.gif" /></center>'); 
          window.location = 'index.php'; 
        } 
       } 
      }); 
      return false; 
     }); 
    }); 

和我的PHP:

if(isset($_FILES['img_to_upload']['name']) && !empty($_FILES['img_to_upload']['name'])){ 
     echo 'Done!'; 
    }else{ 
     echo 'Error!'; 
    } 

全部顯示 「錯誤」 的文字的時候..

P.S.對不起,英文不好。

回答

1

通常情況下,做一個表單提交,並保持在同一頁上,你必須避免使用Javascript,像這樣的默認表單操作:

$("#userpic").submit(function(event) { 
    event.preventDefault(); 
    ... 
}); 

但是,通過上傳圖片Ajax是相當棘手 - 見:

uploading files with jquery $.ajax and php

+0

都能跟得上。與簡單的返回false一起工作。在鏈接等方面需要preventDefault,但不是表單。 – OptimusCrime