Не передаются изображения в base64

198
17 апреля 2017, 05:13

Формирую массив, отправляю с js в php, а там не принимаются изображения. Все остальное php принимает. В чем проблема и как решить?

function numbersend(e) { 
	var n = $('#n-file').val(); 
	var arr = []; 
	for(i=1; i<=n; i++) { 
		arr.push($("#namenumber"+i).val() ? "Название номер: "+$("#namenumber"+i).val() : "Номер без названия"); 
		arr.push("Тип номера: "+$("#typenumber"+i).val()); 
		arr.push("Класс номера: "+$("#classnumber"+i).val()); 
		if($("#vidnumber"+i).val().length > 0){ 
			$("#vidnumber"+i+" option:selected").each(function(){ 
				arr.push("Вид с окна "+this.text); 
			}); 
		} 
		if($("#sannumber"+i).val().length > 0){ 
			$("#sannumber"+i+" option:selected").each(function(){ 
				arr.push("Санузел "+this.text); 
			}); 
		} 
		arr.push("Кухня: "+$("#kitnumber"+i).val()); 
		if($("#ofsnumber"+i).is(':checked')) { 
			arr.push("Для гостей с ОФВ"); 
		} 
		$.each($("[name=mestonumber"+i+"]"), function() { 
				arr.push("Спальные места: "+$(this).val()); 
		}); 
		if($("#goustnumber"+i).val() > 0) { 
			arr.push("Количество гостей: "+$("#goustnumber"+i).val()); 
		} 
		if($("#maynumber"+i).val() > 0) { 
			arr.push("Цена за номер в мае: "+$("#maynumber"+i).val()); 
		} 
		if($("#junenumber"+i).val() > 0) { 
			arr.push("Цена за номер в июне: "+$("#junenumber"+i).val()); 
		} 
		if($("#julynumber"+i).val() > 0) { 
			arr.push("Цена за номер в июле: "+$("#julynumber"+i).val()); 
		} 
		if($("#augnumber"+i).val() > 0) { 
			arr.push("Цена за номер в августе: "+$("#augnumber"+i).val()); 
		} 
		if($("#sepnumber"+i).val() > 0) { 
			arr.push("Цена за номер в сентябре: "+$("#sepnumber"+i).val()); 
		} 
		var k = $('#addimg'+i).attr('data-count'); 
		for(var y=1; y<=k; y++) { 
			var team = i+''+y; 
			console.log('file'+team); 
			encodeImageFileAsURL(team); 
		} 
	} 
	$.post("send.php", {'data[]': arr},	function(result){ 
			console.log(result); 
		} 
	); 
	console.log(arr); 
	function encodeImageFileAsURL(i) { 
		var filesSelected = document.getElementById('file'+i).files; 
		if (filesSelected.length > 0) { 
		  var fileToLoad = filesSelected[0]; 
 
		  var fileReader = new FileReader(); 
 
		  fileReader.onload = function(fileLoadedEvent) { 
			var srcData = fileLoadedEvent.target.result; 
			arr.push('<img src="'+srcData+'">'); 
		  } 
		  fileReader.readAsDataURL(fileToLoad); 
		} 
	} 
} 
 
 
function addMesto(i) { 
	$("#addmesto"+i).before('<select name="mestonumber'+i+'"><option value="Односпальная - 90/130 см">Односпальная - 90/130 см</option><option value="Двуспальная - 131/150 см">Двуспальная - 131/150 см</option><option value="Широкая (King-size) - 151/180 см">Широкая (King-size) - 151/180 см</option><option value="Широкая двуспальная (Super-King-size) - 181/210 см">Широкая двуспальная (Super-King-size) - 181/210 см</option><option value="Двухъярусная - размер варьируется">Двухъярусная - размер варьируется</option><option value="Диван-кровать - размер варьируется">Диван-кровать - размер варьируется</option><option value="Детская кроватка">Детская кроватка</option><option value="Двухъярусная детская кроватка">Двухъярусная детская кроватка</option></select><br>'); 
} 
 
function addImgInput(i) { 
	var count = Number($("#addimg"+i).attr('data-count')); 
	count+=1; 
	$("#addimg"+i).before("<input type='file' id='file"+i+count+"' value=''><br>").attr('data-count',count); 
} 
 
function addForm(i) { 
	var n = $('#n-file').val(); 
	n = +n+1; 
	$('#n-file').val(n); 
	$('#nav-table').before('<table><tr><td><label for="namenumber'+n+'">Название номер</label></td><td><input type="text" id="namenumber'+n+'"></td></tr><tr><td><label for="typenumber'+n+'">Тип номера</label></td><td><select id="typenumber'+n+'"><option value="Одноместный">Одноместный</option><option value="Двухместный">Двухместный</option><option value="Трехместный">Трехместный</option><option value="Четырехместный">Четырехместный</option><option value="Пятиместный">Пятиместный</option></select></td></tr><tr><td><label for="classnumber'+n+'">Класс номера</label></td><td><select id="classnumber'+n+'"><option value="Стандарт">Стандарт</option><option value="Аппартаменты">Аппартаменты</option><option value="Люкс">Люкс</option><option value="Полулюкс">Полулюкс</option><option value="Бизнес">Бизнес</option><option value="Эконом">Эконом</option></select></td></tr><tr><td><label for="vidnumber'+n+'">Вид с окна</label></td><td><select id="vidnumber'+n+'" multiple><option value="на море">на море</option><option value="на сад">на сад</option><option value="на бассейн">на бассейн</option><option value="на террасу">на террасу</option><option value="на пляж">на пляж</option><option value="на парк">на парк</option></select></td></tr><tr><td><label for="sannumber'+n+'">Санузел</label></td><td><select id="sannumber'+n+'" multiple><option value="с ванной">с ванной</option><option value="с душем">с душем</option><option value="с джакузи">с джакузи</option></select></td></tr><tr><td><label for="kitnumber'+n+'">Кухня</label></td><td><select id="kitnumber'+n+'"><option value="Нет">Нет</option><option value="Студия">Студия</option><option value="Миникухня">Миникухня</option></select></td></tr><tr><td><label for="ofsnumber'+n+'">Для гостей с ОФВ</label></td><td><input id="ofsnumber'+n+'" type="checkbox"></td></tr><tr><td><label for="mestonumber'+n+'">Выберите спальные места</label></td><td><select name="mestonumber'+n+'"><option value="Односпальная - 90/130 см">Односпальная - 90/130 см</option><option value="Двуспальная - 131/150 см">Двуспальная - 131/150 см</option><option value="Широкая (King-size) - 151/180 см">Широкая (King-size) - 151/180 см</option><option value="Широкая двуспальная (Super-King-size) - 181/210 см">Широкая двуспальная (Super-King-size) - 181/210 см</option><option value="Двухъярусная - размер варьируется">Двухъярусная - размер варьируется</option><option value="Диван-кровать - размер варьируется">Диван-кровать - размер варьируется</option><option value="Детская кроватка">Детская кроватка</option><option value="Двухъярусная детская кроватка">Двухъярусная детская кроватка</option></select><br><input type="button" id="addmesto'+n+'" value="Добавить ещё место" onclick="addMesto('+n+')"></td></tr><tr><td><label for="goustnumber'+n+'">Количество гостей</label></td><td><input type="number" id="goustnumber'+n+'" value="0"></td></tr><tr><td><label for="maynumber'+n+'">Цена за номер в мае</label></td><td><input type="number" id="maynumber'+n+'" value="0"></td></tr><tr><td><label for="junenumber'+n+'">Цена за номер в июне</label></td><td><input type="number" id="junenumber'+n+'" value="0"></td></tr><tr><td><label for="julynumber'+n+'">Цена за номер в июле</label></td><td><input type="number" id="julynumber'+n+'" value="0"></td></tr><tr><td><label for="augnumber'+n+'">Цена за номер в августе</label></td><td><input type="number" id="augnumber'+n+'" value="0"></td></tr><tr><td><label for="sepnumber'+n+'">Цена за номер в сентябре</label></td><td><input type="number" id="sepnumber'+n+'" value="0"></td></tr><tr><td><label>Фотографии</label></td><td><input type="file" id="file'+n+'1" value=""><br><input type="button" id="addimg'+n+'" data-count="1" value="Добавить изображение" onclick="addImgInput('+n+')"></td></tr></table>'); 
}
.hidden { 
  display: none; 
} 
td { 
  vertical-align: top; 
  padding: 5px; 
} 
td:first-child { 
  text-align: right; 
} 
input[type=text], input[type=number], select { 
  background: #f7f7f7; 
  border: 1px solid #e3e3e3; 
  color: #353535; 
  padding: 4px; 
  outline: none; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<form name="uploadImages" id="uploadImages" method="post" enctype="multipart/form-data"> 
<table> 
	<tr> 
		<td> 
			<label for="namenumber1">Название номер</label> 
		</td> 
		<td> 
			<input type="text" id="namenumber1"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="typenumber1">Тип номера</label> 
		</td> 
		<td> 
			<select id="typenumber1"> 
				<option value="Одноместный">Одноместный</option> 
				<option value="Двухместный">Двухместный</option> 
				<option value="Трехместный">Трехместный</option> 
				<option value="Четырехместный">Четырехместный</option> 
				<option value="Пятиместный">Пятиместный</option> 
			</select> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="classnumber1">Класс номера</label> 
		</td> 
		<td> 
			<select id="classnumber1"> 
				<option value="Стандарт">Стандарт</option> 
				<option value="Аппартаменты">Аппартаменты</option> 
				<option value="Люкс">Люкс</option> 
				<option value="Полулюкс">Полулюкс</option> 
				<option value="Бизнес">Бизнес</option> 
				<option value="Эконом">Эконом</option> 
			</select> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="vidnumber1">Вид с окна</label> 
		</td> 
		<td> 
			<select id="vidnumber1" multiple> 
				<option value="на море">на море</option> 
				<option value="на сад">на сад</option> 
				<option value="на бассейн">на бассейн</option> 
				<option value="на террасу">на террасу</option> 
				<option value="на пляж">на пляж</option> 
				<option value="на парк">на парк</option> 
			</select> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="sannumber1">Санузел</label> 
		</td> 
		<td> 
			<select id="sannumber1" multiple> 
				<option value="с ванной">с ванной</option> 
				<option value="с душем">с душем</option> 
				<option value="с джакузи">с джакузи</option> 
			</select> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="kitnumber1">Кухня</label> 
		</td> 
		<td> 
			<select id="kitnumber1"> 
				<option value="Нет">Нет</option> 
				<option value="Студия">Студия</option> 
				<option value="Миникухня">Миникухня</option> 
			</select> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="ofsnumber1">Для гостей с ОФВ</label> 
		</td> 
		<td> 
			<input id="ofsnumber1" type="checkbox"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="mestonumber1">Выберите спальные места</label> 
		</td> 
		<td> 
			<select name="mestonumber1"> 
				<option value="Односпальная - 90/130 см">Односпальная - 90/130 см</option> 
				<option value="Двуспальная - 131/150 см">Двуспальная - 131/150 см</option> 
				<option value="Широкая (King-size) - 151/180 см">Широкая (King-size) - 151/180 см</option> 
				<option value="Широкая двуспальная (Super-King-size) - 181/210 см">Широкая двуспальная (Super-King-size) - 181/210 см</option> 
				<option value="Двухъярусная - размер варьируется">Двухъярусная - размер варьируется</option> 
				<option value="Диван-кровать - размер варьируется">Диван-кровать - размер варьируется</option> 
				<option value="Детская кроватка">Детская кроватка</option> 
				<option value="Двухъярусная детская кроватка">Двухъярусная детская кроватка</option> 
			</select><br> 
			<input type="button" id="addmesto1" value="Добавить ещё место" onclick="addMesto(1)"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="goustnumber1">Количество гостей</label> 
		</td> 
		<td> 
			<input type="number" id="goustnumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="maynumber1">Цена за номер в мае</label> 
		</td> 
		<td> 
			<input type="number" id="maynumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="junenumber1">Цена за номер в июне</label> 
		</td> 
		<td> 
			<input type="number" id="junenumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="julynumber1">Цена за номер в июле</label> 
		</td> 
		<td> 
			<input type="number" id="julynumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="augnumber1">Цена за номер в августе</label> 
		</td> 
		<td> 
			<input type="number" id="augnumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label for="sepnumber1">Цена за номер в сентябре</label> 
		</td> 
		<td> 
			<input type="number" id="sepnumber1" value="0"> 
		</td> 
	</tr> 
	<tr> 
		<td> 
			<label>Фотографии</label> 
		</td> 
		<td> 
			<input type="file" id="file11" value=""><br> 
			<input type="button" id="addimg1" value="Добавить изображение" data-count="1" onclick="addImgInput(1)"> 
		</td> 
	</tr> 
</table> 
<table id="nav-table"> 
	<tr> 
		<td> 
			<input type="hidden" value="1" id="n-file"> 
			<input type="button" id="addform" value="Добавить ещё объект" onclick="addForm(1)"> 
		</td> 
		<td> 
			<input onclick="numbersend()" type="button" value="Отправить"> 
		</td> 
	</tr> 
</table> 
</form>

А принимаю всё это так:

<?php
    if($_POST != Array()) {
        print_r($_POST['data']);
    } else {
        echo "Массив пустой";
    }
?>
Answer 1

вообще при отправке файла, картинки пост запросом они попадают в глобальный массив $_FILES

http://php.net/manual/ru/reserved.variables.files.php

READ ALSO
click в jquery возвращает нативный js объект

click в jquery возвращает нативный js объект

при клике на ссылку должен вызываться jquery объект: $( "__tab-btn" )

180
Определение текущего слайда

Определение текущего слайда

При нажатии на "+" происходит анимация появляется изображение , а потом текст, но после этого если переключится на другие слайды там та же картинка...

206
Java. Как архивировать только определенные файлы из папки в один архив

Java. Как архивировать только определенные файлы из папки в один архив

Всем приветМожет вопрос банальный, но в Java я новичок и никак не могу додуматься

278