Загрузка нескольких изобпажений в базу
Очень нужна ваша помощь. Пытаюсь сделать загрузчик изображений. Ничего не получается. Пожалуйста, можете написать на ajax или jquery + php какой-нибудь скрипт, который сможет осуществить мою задачу: Пользователь загружает несколько изображений в multiple input и эти изображения должны переместиться в определенную папку, а их имя должно уже улететь в базу. По поводу базы можно не заморачиваться, с этим уж сам, главное чтобы возвращалась переменная с уникальным именем этого файла. Заранее огромное спасибо!
Ответы (1 шт):
Автор решения: Denis640Kb
→ Ссылка
Первый файл (index.php):
<?php
?>
<script
src="https://code.jquery.com/jquery-3.4.1.js"
integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin="anonymous"></script>
<body>
<div class="download">
<input type="file" multiple="multiple" accept=".txt,image/*">
<a href="#" class="upload">Загрузить файлы</a>
</div>
<script>
$(window).on('load', function () {
var files;
$('input[type=file]').on('change', function(){
files = this.files;
});
$('.upload').on( 'click', function(event){
event.stopPropagation();
event.preventDefault();
var data = new FormData();
$.each( files, function(key, value){
data.append(key, value);
});
data.append('uploaded', 1);
$.ajax({
url : './download.php',
type : 'POST',
data : data,
dataType : 'json',
processData : false,
contentType : false,
success : function(respond){
if(typeof respond.error === 'undefined'){
console.log('Загружено');
} else {
console.log('Error - ' + respond.error);
}
},
error: function(Sch, status){
console.log('Ошибка отправки: ' + status, Sch);
}
});
});
})
</script>
Второй файл (download.php):
<?php
if( isset( $_POST['uploaded'] ) ){
$uploaddir = './img';
$files = $_FILES;
$Arr = array();
foreach( $files as $file ){
$Name = $file['name'];
if( move_uploaded_file( $file['tmp_name'], "$uploaddir/$Name" ) ){
$Arr[] = realpath( "$uploaddir/$Name" );
}
}
$data = $Arr ? array('files' => $Arr ) : array('error' => 'Ошибка загрузки файлов.');
die(json_encode( $data ));
}