@alekskondr
php, javascript, yii2, drupal, MQL

Как добавить архив zip на сервер?

Картинки jpeg добавляются, а вот архив типа zip нет!

Вот форма с аяксом

<div class="wrapper">
		<input type="file" multiple="multiple" >
		<a href="#" class="submit button">Загрузить файлы</a>
		<div class="ajax-respond"></div>
	</div>
	
<script>
(function($){

var files;
$('input[type=file]').change(function(){
	files = this.files;
});

$('.submit.button').click(function( event ){
	event.stopPropagation();
	event.preventDefault();

	var data = new FormData();
	$.each( files, function( key, value ){
		data.append( key, value );
	});

	$.ajax({
		url: './submit.php?uploadfiles',
		type: 'POST',
		data: data,
		cache: false,
		dataType: 'json',
		processData: false, 
		contentType: false, 
		success: function( respond, textStatus, jqXHR ){
			if( typeof respond.error === 'undefined' ){
				var files_path = respond.files;
				var html = '';
				$.each( files_path, function( key, val ){ html += val +'<br>'; } )
				$('.ajax-respond').html( html );
			}
			else{
				console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
			}
		},
		error: function( jqXHR, textStatus, errorThrown ){
			console.log('ОШИБКИ AJAX запроса: ' + textStatus );
		}
	});
	
});


})(jQuery)
</script>


Сервер

$data = array();

if( isset( $_GET['uploadfiles'] ) ){  
    $error = false;
    $files = array();

    $uploaddir = './uploads/';
	
	if( ! is_dir( $uploaddir ) ) mkdir( $uploaddir, 0777 );

	// переместим файлы из временной директории в указанную
	foreach( $_FILES as $file ){
        if( move_uploaded_file( $file['tmp_name'], $uploaddir . basename($file['name']) ) ){
            $files[] = realpath( $uploaddir . $file['name'] );
        }
        else{
            $error = true;
        }
    }
	
    $data = $error ? array('error' => 'Ошибка загрузки файлов.') : array('files' => $files );
	
	echo json_encode( $data );
}
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
проверять или на сервер доходят картинки - var_dump($_FILES);
если зипы не приходят - крутить настройки mime типов. Так же проверить что в поле куда вы добавляете файлы не стоит ограничение на тип файла в самом инпуте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы