2016-12-07 61 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未定义” –