2016-12-07 47 views
0

我已經寫了一個功能,我希望上傳一個表單而不使用任何形式,我可以使用jQuery的POST方法發送一個文件/文件到'upload.php'。輸入標籤不在任何表單標籤內。它單獨站立。下面是我的代碼:沒有顯示,而試圖做沒有窗體的文件上傳?

我的純HTML的輸入型= '文件' 不形:

<div class="profile_pic"> 
<img id="upload-button" class="profile-pic img-circle profile_img" src="img/default-image.png" alt="default"> 
<input class="file-upload" type="file" name="profile_pic" id="profile_pic" /> 
</div> 

我的JavaScript代碼是:

var readURL = function(input) { 
     if (input.files && input.files[0]) { 
      var reader = new FileReader(); 
      reader.onload = function (e) { 
       $('#upload-button').attr('src', e.target.result); 
      } 
      reader.readAsDataURL(input.files[0]); 
     } 
    } 
$(".file-upload").on('change', function(){ 
     readURL(this); 

     alert('working'); 
      var file = file1.files[0]; 
      var formData = new FormData(); 
      formData.append('formData', file); 

      $.ajax({ 
       url: "uploadFile.php",  
       type: "POST", 
       processData: false, 
       contentType: false, 
       dataType : 'json', 
       data: formData, 
       success: function (data) { 
        alert(data); 
        } 
      }); 
    }); 
    $("#upload-button").on('click', function() { 
     $(".file-upload").click(); 
    }); 
下面

UploadFile.php代碼:

<?php 
$file_name = $_FILES['profile_pic']['name']; 

echo $file_name; ?> 

任何人都可以告訴我我做錯了什麼?提前致謝。

+0

整個故事就在這裏http://stackoverflow.com/questions/2320069/jquery-ajax-file-upload –

回答

0

如果您使用「statusCode」而不是「成功」它會工作,爲什麼?我不知道:)

function uploadFile(file1) { 

     var file = file1.files[0]; 
     var formData = new FormData(); 
     formData.append('formData', file); 
     $.ajax({ 
      url: "uploadFile.php",  
      type: "POST", 
      statusCode: { 
      200: function(data) { 
       console.log(data); 
       alert(data); 
      } 
      }, 
      processData: false, 
      contentType: false, 
      dataType : 'json', 
      data: formData 

     }); 

} 
+0

問編輯,請再次檢查。我正在獲取alert('working'),但沒有從uploadFile.php文件獲取$ _FILES信息。在控制檯中,它表示「未捕獲的ReferenceError文件1未定義」 –