我有一个数组$_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'];
}
?>
答案 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'];
}