2016-12-07 3 views
0

Я написал функциональность, где я хочу загрузить форму без каких-либо форм, могу ли я просто отправить файл/файлы из «upload.php» с помощью метода POST с помощью jQuery. Входной тег не находится внутри тега формы. Он стоит индивидуально. Ниже мой код:Ничего не отображается при попытке загрузки файлов без формы?

мой обычный тип 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» вместо «success», это сработает, почему? я не знаю :)

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

Вопрос отредактирован пожалуйста, проверьте его еще раз. Я получаю предупреждение («работает»), но не получаю информацию $ _FILES из файла uploadFile.php. В консоли говорится, что «Uncaught ReferenceError file1 не определен» –