В моем проекте я вставляю данные, подобные файлам и другой информации, используя ajax, для сохранения файла, в который я хочу вставить столько файлов, так что я сделал это, у меня есть эта таблица, где я храню содержимое файла как
var file = $('#file')[0].files[0]; //var file = document.getElementById('file').files[0]; var name = file.name; var size = file.size; var type = file.type; var newname = $('#filename').val(); var newRow = "<tr>" + "<td id=''>" + file.name + "</td>" + "<td id=''>" + file.size + "</td>" + "<td id=''>" + file.type + "</td>" + "<td id=''>" + newname + "</td>" + "<td>" + "<a href='#' id='" + id + "' class='deletefile'>Delete</a>" + "</td>" + "</tr>"; $("#filetable > tbody > tr:last").after(newRow);
Вот как я сохраняю содержимое файла в таблице, чтобы я мог вставлять много файлов в базу данных, и это позволяет мне переименовывать файл с помощью newname
.
после этого я push
содержимое этой таблицы в переменной (я не включал в push
как я получил данные из таблицы, потому что он слишком длинный). Затем я помещаю переменную в formdata
$('#Addtotable').click(function() { var $rows = $('#filetable').find("tr:not(:eq(0))"); var valueToPush = []; $rows.each(function() { var $tds = $(this).find('td'); var nameoffile = $tds.eq(0).text(); var size = $tds.eq(1).text(); var type = $tds.eq(2).text(); var filename = $tds.eq(3).text(); valueToPush.push({ nameoffile: nameoffile, size: size, filename: filename, type: type }); }); var formData = new FormData(); formData.append('file', JSON.stringify(valueToPush));
Заметка. Я включил только прилагательные данные для файла
тогда ajax будет выглядеть следующим образом:
$.ajax({ url: '../include/Add.php', type: 'POST', dataType: "json", data: formData, processData: false, // tell jQuery not to process the data contentType: false, // tell jQuery not to set contentType success: function(data) { console.log(data); //alert(data.message); //window.location.reload(true); }, error: function(data) { console.log(data); //alert("Error!"); // Optional //window.location.reload(true); } });
и в моем php у меня есть это условие
if (!empty($_FILES)) {
Мой вопрос в том, почему мой $_FILES
всегда пуст, когда я пытаюсь повторить переменную ($_POST['file'])
она вернет correct content of the file
например, имя current file name
, file size
file type