• Как отправить аватар вместе с формой регистрации через AJAX?

    slo_nik
    @slo_nik Куратор тега PHP
    Добрый вечер.
    Просто так загрузить изображение через ajax не получится.
    Используйте FormData и всё у Вас получится.

    p.s.
    Приблизительно так:
    function Testing(url, form){
    	    var file = '';
    		var formdata = new FormData(form[0]);
    		formdata.forEach(function(item, i, arr){
    			console.log(i + ': ' + item + " array: " + arr)
    			if(i == 'files'){
    				formdata.append(item.name, item)
    			}
    		})
    
            $.ajax({
            	url: url,
            	type: 'POST',
            	processData: false,
                contentType: false,
            	data: formdata,
            	success: function(data){
            		console.log(data)
            	}
            })
    	}
    
    	$('#form-data').on('submit', function(e){
    		e.preventDefault();
    		var files = $(this).find('input:file')
    		Testing('upload.php', $(this))
    	})
    Ответ написан
    3 комментария
  • Как количество файлов влияет на работу сервера?

    DevMan
    @DevMan
    само по себе кол-во файлов (даже в одной директории) никак не влияет на производительность.
    а вот, например, при получении листинга такой директории или ее бекапе буду возникать тормоза.
    Ответ написан
    Комментировать
  • Как количество файлов влияет на работу сервера?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    1. Скорость работы с кучей файлов теоретически такая же как и с базой. Но вот кеширование файловой системы и базы идет по разному. И если при обращении к таблице, она у вас сразу вся закешируется, то вот закешировать 300.000 файлов/каталогов не так просто.

    2.
    При доступе к сайту обычно обрабатывают чпу-урл через пхп и ищут в базе, у меня всегда был вопрос почему не создавать реальные директории и в них класть php файлик с id и т.п чтобы потом быстро найти данные в б.д."


    Потому что ID у файлика достаточно сложно раскладывается на каталоги таким образом, чтобы это было равномерно. файлы могут добавляться и удаляться не удобно, в итоге может выйти в одном каталоге 100 файлов, в другом 100 тысяч, и перераспределять все это на ходу - не выйдет. Поэтому гораздо проще файлы распределять не в зависимости от ID, а в зависимости от наполнения папок, а путь к файлу уже хранить в базе, в которой есть ID.
    Ответ написан
    Комментировать