使用print_r后如何从数组中获取单个值

时间:2018-09-09 10:42:16

标签: php jquery arrays ajax

我有一个数组$_FILES,它可以存储多个图像。

当我在此阵列中存储两张图像后使用print_r($_FILES)时,输出如下:

Array ( [IMG_20170304_224950_jpg] => Array ( [name] => IMG_20170304_224950.jpg [type] => image/jpeg [tmp_name] => C:\wamp64\tmp\php4584.tmp [error] => 0 [size] => 4098228 ) [IMG_20170305_075610_jpg] => Array ( [name] => IMG_20170305_075610.jpg [type] => image/jpeg [tmp_name] => C:\wamp64\tmp\php4602.tmp [error] => 0 [size] => 5314040 ) )

在此,我想同时echo两张图片。


这是我的代码的样子:

index.php

     <input id="avatar" type="file" name="avatar[]" multiple />
     <button id="upload" value="Upload" type="button">upload</button> 
    <div class="preview">
    </div>

   <div class="return_php"></div>

  <script   src="https://code.jquery.com/jquery-3.1.0.min.js" ></script>
 <script>
 $(document).ready(function(){
    var form_data = new FormData(); 
    var number = 0;

    /* WHEN YOU UPLOAD ONE OR MULTIPLE FILES */
    $(document).on('change','#avatar',function(){
        console.log($("#avatar").prop("files").length);
        len_files = $("#avatar").prop("files").length;
        for (var i = 0; i < len_files; i++) {
            var file_data = $("#avatar").prop("files")[i];
            form_data.append(file_data.name, file_data);
            number++;
            var construc = '<img width="200px" height="200px" src="' +  window.URL.createObjectURL(file_data) + '" alt="'  +  file_data.name  + '" />';
            $('.preview').append(construc); 
        }
    }); 

    /* WHEN YOU CLICK ON THE IMG IN ORDER TO DELETE IT */
    $(document).on('click','img',function(){

        var filename = $(this).attr('alt');
        var newfilename = filename.replace(/\./gi, "_");
        form_data.delete($(this).attr('alt'))
        $(this).remove()

    });

    /* UPLOAD CLICK */
    $(document).on("click", "#upload", function() {
        $.ajax({
                    url: "target.php",
                    dataType: 'script',
                    cache: false,
                    contentType: false,
                    processData: false,
                    data: form_data,                         // Setting the data attribute of ajax with form_data
                    type: 'post',
                    success: function(data){
                        $('.return_php').html(data);
                    }
           })
    })
});

target.php

<?php


 var_dump($_FILES);
 print_r ($_FILES);

foreach ($array as $key => $image) {
  /* Now you can get each image name */
 echo $image['name'];
 }
 ?>

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码来打印图像名称:

foreach ($array as $key => $image) {
  /* Now you can get each image name */
  echo $image['name'];
}

编辑:这是一个上传文件示例

index.html

<form action="upload.php" method="POST" enctype="multipart/form-data">
    <label for="fileToUpload">Select image to upload:</label>
    <input type="file" name="uploadFile" id="fileToUpload">
    <input type="submit" value="Upload File" name="submit">
</form>

upload.php

if (isset($_FILES['uploadFile'])) {
  print "Your file information:";
  var_dump($_FILES['uploadFile']);
} else {
  print "You need to upload a file.";
}

答案 1 :(得分:0)

您可以尝试

foreach($array as $val)
{ 
    echo $val['name'];
}