2016-06-08 2 views
0

파일 리더를 사용하여 이미지를 선택하고 업로드합니다. 내 이미지가 미리보기로 선택되었지만 제출 버튼을 누르면 업로드되지 않았습니다.파일이 파일 리더에 업로드되지 않습니다.

upload.php에서 $ _FILES의 출력은 빈 배열입니다.

어디에 문제가 있습니까?

HTML

<form action="upload.php" method="post" enctype="multipart/form-data"> 
<div id="wrapper" style="margin-top: 20px;"> 
    <input id="fileUpload" multiple="multiple" type="file"/> 
    <input type="submit" value="Upload Image" name="upload"> 

    <div id="image-holder"> 

    </div> 
</div> 
</form> 

자바 스크립트

<script> 

$(document).ready(function() { 
     $("#fileUpload").on('change', function() { 
      //Get count of selected files 
      var countFiles = $(this)[0].files.length; 
      var imgPath = $(this)[0].value; 
      var extn = imgPath.substring(imgPath.lastIndexOf('.') + 1).toLowerCase(); 
      var image_holder = $("#image-holder"); 
      image_holder.empty(); 
      if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") { 
      if (typeof(FileReader) != "undefined") { 
       //loop for each file selected for uploaded. 
       for (var i = 0; i < countFiles; i++) 
       { 
       var reader = new FileReader(); 
       reader.onload = function(e) { 
        $("<img />", { 
        "src": e.target.result, 
        "class": "thumb-image" 
        }).appendTo(image_holder); 
       } 
       image_holder.show(); 
       reader.readAsDataURL($(this)[0].files[i]); 
       } 
      } else { 
       alert("This browser does not support FileReader."); 
      } 
      } else { 
      alert("Pls select only images"); 
      } 
     }); 
     }); 
</script> 

upload.php로

<?php 

require_once './include/db_connection.php'; 
if(isset($_POST['upload'])) 
{ 
print_r($_FILES); 
die(); 

if(!empty($_FILES)){ 

    $targetDir = "upload/"; 
    $fileName = $_FILES['file']['name']; 
    $targetFile = $targetDir.$fileName; 

    if(move_uploaded_file($_FILES['file']['tmp_name'],$targetFile)) 

    { 
     //insert file information into db table 
$sql = mysqli_query($link,"INSERT INTO files (file_name, uploaded) VALUES('".$fileName."','".date("Y-m-d H:i:s")."')"); 
echo 'file inserted'; 
} 
    else 
    { 
     echo 'Query not working'; 
    } 

} 
else 
{ 
    echo 'No file selected'; 
} 
} 

답변

1

파일 입력은 name이 없습니다.

양식 컨트롤의 name은 제출 된 데이터에 어떤 키가 있는지 결정하는 데 사용됩니다. 데이터가없는 컨트롤은 성공하지 못합니다 (즉, 제출 된 데이터에는 전혀 표시되지 않습니다).

+0

최고! 신의 축복이 있습니다! –

+0

ok 한 가지 더 .... 스크립트의 이미지 크기를 제한하려면 어떻게해야합니까? –