pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Почему логический оператор в выражении возвращает вместо булевского значения строку?

Лучший ответ: Потому, что оператор && вычисляет слева направо каждый из своих операндов. Результат вычисление операнда приводится к булевому типу и если он true, переходит к вычислению следующего операнда. Операция повторяется до тех пор, пока результат вычисления очередного операнда не будет false, если это так, то возвращается результат вычисления данного операнда и цепочка обрывается.
Все операнды истины, значит цепочка дойдет до конца и вернет 51 && 2 && 3 && 4 && 5 // 5
В цепочке есть ложный операнд, значит он и вернется, а цепочка вычислений на нем закончится1 && 2 && 0 && 4 && 5 // 0
Цепочка завершится на том операнде для которого вы ответите отрицательно, последующие операнды не будут выполятьсяconfirm(1) && confirm(2) && confirm(3)
Для оператора || похожая картина. Отличие в том, что цепочка операндов будет выполняться до первого истинного операнда1 || 2 || 3 || 4 || 5 // 10 || false || !!0 || 5 || true || !!1 //5
Цепочка будет выполнятся до тех пор, пока вы не ответите истинноconfirm(1) || confirm(2) || confirm(3)
Т.е. по сути && и || не возвращают true или false. Они возвращают результат вычисления одного из своих операндов.

Худший ответ: По ссылке из предыдущего ответа: https://learn.javascript.ru/logical-opsоператор && вычисляет операнды слева направо до первого «ложного» и возвращает его, а если все истинные – то последнее значение.
Вопрос: Что мотивирует open source сообщество?

Лучший ответ: Кто эти люди что делают "готовое", что ими движет?
Это люди которые не нашли готовое или готовое им не подошло. Они просто решают свою проблему.

Худший ответ: Мотивирует инстинкт, которому больше двух миллионов лет - потребность проявить себя и занять позицию в стайной иерархии.
Вопрос: Bitrix. Правильная кастомизация шаблонов?

Лучший ответ: Просто никто не пользуется стандартными шаблонами, у всех свои наработки. 
Стандартный шаблон создан только для людей, которые никогда и не полезут в код.
Ну уж если нужно отформатировать - phpStorm с этим отлично справляется

Худший ответ: Почему код в компонентах порой так плохо форматирован
Вы будете еще более шокированы, пока изучаете битриксКак вы с этим живете?
Если только с этим и жить, то дело привычки. Мне, например, ваша "многоэтажка" тоже глаза режет.
Вопрос: Является ли это псевдокодом или есть такой язык программирования?

Лучший ответ: Судя по радикалу и символу объединения больше похоже на псевдокод. Понятие существования странное: как математик хочет, такие символы и применяет.
Реально видел спецсимволы в MatCAD и Julia. Для символов обычно используется код LATEX.
Но сам псевдокод а-ля Паскаль.

Худший ответ: Больше похоже на паскаль в перемешку с псевдокодом
Вопрос: Как открыть локальные веб-сервера по доменному имени?

Лучший ответ: Прописать в DNS. Или в файле hosts на клиентах.

Худший ответ: Повторюсь за paran0id: если используется в той или иной форме локальный dns (кэширующий или там ad например) - просто создать записи для своей локальной сети с локальными адресами. 
Но так же совсем не помешает и nat loopback aka harpin nat который позволит из своей сети обращаться в том числе и на самого себя.
Вопрос: Как анимировать картинку?

Лучший ответ: snippet

Добавил физику.  CodePen

Худший ответ: в loopBird надо добавить ctx.clearRect(0,0,w,h)

--
Зачем на каждой итерации requestAnimationFrame картинка заново пересоздается?
Вопрос: Как сделать так чтобы после оплаты высылалась автоматически ссылка для скачивания по почте указанной в форме?

Лучший ответ: как сделать так чтобы после оплаты выдавалась автоматически ссылка для скачивания? Или отправлялась ссылка на почту?
Дайте, пожалуйста, попить... А то так кушать хочется, что даже переночевать негде.
Что именно надо то: получение оплаты, генерация ссылки, отправка на почту? PHP или JS?
Если надо все и сразу, то вам на фриланс.

Худший ответ: Либо изучать php, js, либо нанять работников, либо воспользоваться сторонними решениями, например www.plati.ru - сам не использовал для продажи, но для покупок использовал. Думаю вам подойдет последий вариант.
Вопрос: Nginx и чужие домены на моем IP, как запретить им доступ?

Лучший ответ: Решил проблему, оказалось проще чем думал. Всего-то нужно было настроить конфиг по умолчанию. Оставлю ссылку на ветку с общими решениями по данному вопросу, может кому пригодится) https://stackoverflow.com/questions/9824328/why-is...server {
    listen 80 default_server;
    listen 443 ssl http2 default_server;
    server_name _;
    ssl_certificate <path to cert>
    ssl_certificate_key <path to key>
    return 444;
}

Худший ответ: https://firstwiki.ru/index.php/%D0%A1%D0%B0%D0%B9%...Если кто-то прописал в качестве А-записи для своего домена IP адрес вашего сервера и вы не хотите, чтобы при запросе данного домена отображался ваш сайт, вам нужно сделать "сайт-заглушку". Для этого следует проделать следующие шаги: 
Идея надеюсь понятная. Делайте на hostname например. 
Распространенная ошибка игнорировать hostname и dns
Вопрос: Почему Javascript включен в тор браузере?

Лучший ответ: Вы путаете tor и tor browser или tor bundle, или что там у вас.
Cам по себе tor никакого дела с js не имеет.upd если речь о этом tor browser'е, то у них в FAQ это есть.
JS по умолчанию включен, но при этом применены довольно жесткие настройки NoScript'а, и другие приемы.

Худший ответ: Чем больше Вы стараетесь стать незаметным, тем более уникальным и видным становитесь.
Вопрос: Как исправить ошибку Google Maps API error: MissingKeyMapError?

Лучший ответ: Здравствуйте!
Проверьте другие плагины, может быть один из них требует установки API ключа. Также обновите тему, может быть проблема в теме. По идее, если апи ключ у вас введен, то карта должна работать. Ну и попробуйте в разрешениях убрать ограничения и снова проерьте.

Худший ответ: Ошибка была из-за конфликта с плагином ACF. Вот код, который решает проблему:function my_acf_google_map_api( $api ){
	$api['key'] = 'YOUR_API_KEY';
	return $api;
}
add_filter('acf/fields/google_map/api', 'my_acf_google_map_api');
Вопрос: Что такое Cardinality и зачем оно нужно?

Лучший ответ: Cardinality характеризует уникальность данных. Высокая кардинальность - уникальные данные, низкая кардинальность - повторяющиеся данные. Например, в таблице customers имеем колонки:gender - высокоповторяющиеся данные, низкая кардинальностьcity - данные повторяются, но уже не так часто - нормальная кардинальностьphone - данные уникальны, высокая кардинальность
Как кардинальность может слететь - впервые слышу. Это характеристика данных по их уникальности, а не индекс какой-нибудь. Она не слетает.
Впрочем, иногда под кардинальностью (скорее ошибочно) подразумевают кардинальные отношения между таблицами (1:1, 1:n, n:n). В данном случае тогда речь может идти о слетевших связях (foreign keys слетевшие в результате некорректного импорта с переопределением autoincrements).

Худший ответ: https://ru.m.wikipedia.org/wiki/%D0%9C%D0%BE%D1%89...
Слететь не может. Может быть высоким (для уникальных значений) и низким (для дубликатов).
Вопрос: Какого регистратора выбрать?

Лучший ответ: Ну namecheap старый (2001го года) и известный регистратор (не реселлер хотя был им когдато), там два хороших момента:
1 днсы держит у verisign - солидная контора которая обслуживает два корневых днса
2 очень адекватная поддержка через чаты, операторы чатов там откудато из пост советских стран, что очень радует (не дай бог вам общаться с индусами как у godaddy)
Кто такие internetbs.net я хз, судя по сайту контора 15го года скорее всего реселлер какойто.

Худший ответ: Выбрал бы который дешевле. 
Учитывая еще и стоимость продлений.p.s. у меня по такому принципу домены зарегистрированы у 7 разных регистраторов. =) все работает как часы. 
Это же не хостинг, где от него зависит работа сайта.
Вопрос: Как вы относитесь к использованию транзакций в Laravel?

Лучший ответ: Использовать надо, другие описали, а еще я бы добавил, что помимо транзакции в операции могут быть events, которые тоже надо откатить (не выполнять).
Для этого используется пакет
https://github.com/fntneves/laravel-transactional-...

Худший ответ: Мы на проекте решили использовать транзакции везде, кроме роутов только на выборку. В том числе и в джобах.

Транзакции стопроцентно нужны, так как они позволяют не записывать полу-состояние (и.е. откатить все что можно, если какой-то из запросов или какая-то бизнес логика выкинули эксепшен) и не ломать этим базу. Это главная причина, почему мы везде их юзаем.

Есть минус - дедлоки. По-нормальному это решается какой-нибудь doctrine, либо повтором транзакций (если реально), либо фиксами долгих транзакций.
Вопрос: Как можно оптимизировать код?

Лучший ответ: "Как оптимизировать код" - неверный вопрос. Код можно оптимизировать, если есть критерии оптимизации. А у Вас не только критериев нет, Вы даже не написали, что программа делать должна, с какими данными работать. Так что думаю, если программа делает то, что задумано, то не стоит ничего "оптимизировать". Лучше лишний раз на ошибки проверьте.
Если уж Вам сильно хочется замечаний, то вот некоторые. Часть можете считать придирками, но есть и более важные.
Сверху вниз.
Глобальная переменная I. Потенциальный источник ошибок. В каких-то процедурах она перекрывается локальной переменной, в каких-то нет. Легко неуследить и использовать не ту, что нужно. (Глобальную переименовать)
Нелогичное название процедуры MatrixInput. Да, там формируется матрица, но при этом она не вводится (Input), а наоборот выводится - write(...)! (Для лучшей читабельности кода назовите например FillMatrix) 
В этой же процедуре не контролируется выход индекса за границу в строке 
M[I,J]:=S[N*(i-1)+j];
Раз уж выделили этот кусочек в отдельную процедуру, в её начале надо проверить корректность входных параметров.
В процедуре CheckAndFixString вместо цикла 
while length(S)<NeedLength do S:=S+'#'
лучше так 
S := S + StringOfChar('#', NeedLength - length(S)); Здесь длина строки нужна только один раз, а не на каждом проходе цикла.
Основная программа.
Главная ошибка - "захардкоженные" имена файлов. Вы принесли кому-то Вашу программу. Откуда у него такие каталоги?
Или используйте ini-файл с путями к файлам или хотябы оставьте в коде только имена файлов и ищите их в каталоге программы.
Здесь же вторая ошибка - отсутствие обработки ошибок при работе с файлами. Если например нужного файла нет программа свалится с ошибкой вместо информативного сообщения пользователю.

Худший ответ: Если сильно хочется оптимизации "древний" TextFile замените на StringList который существенно удобнее.
Вопрос: Как обратиться к блоку внутри блока в css?

Лучший ответ: а взять и самому посмотреть откомпиленный css твоего scss не судьба?
skrinshoter.ru/v/140519/ixSskVbO?a
https://codepen.io/anon/pen/arpvjQ

Худший ответ: Ну, если вы напишите 
.block3 {}
то все элементы на странице, с классом block3 получают описанные в этом блоке стили. Если вот так
.block1 .block2 .block 3 {}
то применят на себя стили только элементы block3, которые находятся внутри блока block2, который находится внутри блока block1.
Вопрос: Как изменить IP, выдаваемые точкой доступа Android?

Лучший ответ: Зависит от прошивки телефона, чаще этот диапазон выбирается рандомно каждый раз или один раз в первое использование и потом уже постоянно.
На ленове моём можно было задать в настройках точки доступа, потом прошиву обновили и ушло.
Ответ: никак, ищите стороннюю прошиву для телефона, которая имеет данный функционал
Вопрос, а нафига? Я конечно догадываюсь слегка, но всё-же :)

Худший ответ: как и везде - залезть в настройки железяки и изменить.
обычно присуствует веб-интерфейс по адресу шлюза.
больше без подробностей ничего не скажешь - все ясновидцы давно сбежали на РЕН-ТВ
Вопрос: Почему тут true?

Лучший ответ: Потому что null преобразуется к 0, при сравнении.

Худший ответ: Везде так. null, где-то nil - это не false. а объект пустоты.
Вопрос: Почему не могу вычислить факториал с 10?

Лучший ответ: Не задано начальное значение result - поэтому при умножении всегда будет NaN.
Умножать надо на значение счётчика цикла, а не на конечное число - иначе это будет не факториал.
Начинать умножать надо с 1, а не с 0 - иначе результат всегда будет 0.
Неправильное условие окончания цикла, должно быть <= вместо < - иначе не будет выполнено умножение на последнее число.

Худший ответ: Во-первых, да не задано начальное значение result. А, во-вторых, умножая в цикле на number, вы получаете степень 10, умноженную на result, а не факториал
Вопрос: Возможно ли провести выборы/голосования с помощью «интернет-решения»?

Лучший ответ: P.S. Как-то у нас уже было что-то похожее, выбирали вроде депутатов в Москве (могу ошибаться)И к процессу тогда было много нареканий - он был непрозрачным и криптографически не очень защищённым. А когда организаторам об этом сказали, они просто ушли в несознанку.

Худший ответ: Давным-давно (в 1785 году) математически доказано, что в общем случае справедливой системы выборов не существует.
https://ru.wikipedia.org/wiki/Парадокс_Кондорсе 
Т.е. прежде всего есть возможность законного манипулирования, вопрос лишь в том, кто сумеет воспользоваться этой возможностью.
Вопрос: Как сделать эффект движения картинки?

Лучший ответ: Просто скопированный код с того сайта.snippet

Худший ответ: А как убрать полосы прокрутки? онивсегда появляються чтобы не делал
Вопрос: Существуют ли базы данных которые поддерживают деревья?

Лучший ответ: Дерево - это частный случай графа, так что любая графовая СУБД подойдёт. И наверное, подойдёт Caché, так как позиционируется она как иерархическая. Но я про неё ничего не знаю, утверждать не могу.

Худший ответ: Например, postgresql
Вопрос: Вопрос по поводу реализации чата в онлайн играх, знает ли кто об этом?

Лучший ответ: У вас есть соединение, причем постоянное. Реализуйте класс чата, комнаты и сообщения. 
Дальше на сервере реализуйте обмен. 
Chat
 AddChanel
 JoinUserToChat
 KickOffUser
 ListUsers
Chanel
 ListUsers
 SendMessage
 SendPrivateMessage
Message
 Create
 AddAttachment

Худший ответ: Если вот так погуглить (web chat python) выпадает много всего, например:
https://codeburst.io/building-your-first-chat-appl...
или 
https://codinginfinite.com/python-chat-application...
Вопрос: Почему ПК выключается при подключении USB-наушников?

Лучший ответ: Возможно в штекере USB наушников происходит короткое замыкание 5 Вольт на "землю" и срабатывает защита блока питания.

Худший ответ: КЗ. Не шутите с этим!
Вопрос: Что выбрать для системы ВКС?

Лучший ответ: Из программных реализаций интересен trueconf

Худший ответ: Обратите внимание на  https://proficonf.com/ru/, возможно заинтересует
Вопрос: Как поступить с неприятным заказчиком?

Лучший ответ: Потратьте 20 минут, напишите вежливое письмо типа "уважаемый ФИО, т.к. вы два года не оплачивали хостинг, сайт был отключен и удален хостером. Работы по его восстановлению будут стоить столько-то. А услуги по доработке будут оплачиваться отдельно, в зависимости от объема работ".
И цену поставьте такую, которая сможет компенсировать ваши душевные страдания:)

Худший ответ: Вопрос, как поступить с клиентом?Это ваше дело. хостинг 2 года простоял без оплаты и никаких бекапов уже совсем нету его не волнует.Если у вас нет перед ним обязательств - тогда в чем проблема? Если же у вас есть какие то обязательства по договору - выполняйте их.Просто так отдавать не хочу, я потратил время на поиски и явно ещё попросит меня закидывать его на хостинг. Так и напишите клиенту - работы по восстановлению проекта из архива стоят столько-то, размещение на хостинг - столько-то. Потом итоговую сумму и вопрос - счет выставлять?
Вопрос: Почему заявки с сайта, отправленные на gmail попадают в спам?

Лучший ответ: Использовать SMTP, например через либу - PHPMailerНе палить email админа <input type="hidden" name="admin_email" value="admin@gmail.com">

Худший ответ: Для начала открыть  это письмо в гмайле и посмотреть причину попадания в спам.
Вопрос: Чем отличается генератор от корутины?

Лучший ответ: Ответ Дмитрий Шицков был бы хорош лет 5 назад, но сейчас нуждается в уточнении.  PEP 492, все дела.import asyncio, warnings, itertools

def a():
    for ch in 'foo':
        print(ch, 'from a')
        yield

@asyncio.coroutine
def b():
    for ch in 'foo':
        print(ch, 'from b')
        yield

async def c():
    for ch in 'foo':
        print(ch, 'from c')
        await asyncio.sleep(0)

print('как ни странно, здесь все три прокатывают\n')
loop = asyncio.get_event_loop()
tasks = [loop.create_task(f()) for f in (a, b, c)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

print('\nмежду тем, есть нюансы\n')
with warnings.catch_warnings():
    warnings.simplefilter('ignore')
    dirs = [[*dir(f), *dir(f())] for f in (a, b, c)]
for s in sorted(set(itertools.chain(*dirs))):
    if not all(s in d for d in dirs):
        print(f'{s:14}', *['-+'[s in d] for d in dirs])
Видно, что a и b отличаются лишь тем, что b зарегистрирована как корутина, а вот c вовсе другая.
Займись этим вопросом, чо нароешь - отпишись.

Худший ответ: Тем что корутина выполняется в отдельном асинхронном потоке?
Вопрос: Как слушать файл в realtime?

Лучший ответ: Ну, хоть на вопрос и ответили, таки добавлю. В линуксе есть подсистема inotify, которая позволяет мониторить файл действительно в realtime - https://ru.wikipedia.org/wiki/Inotify

Худший ответ: для файла простейшим вариантом будет реализовать поведение подобное утилите tail или вызвать tail и забирать вывод с нее$handle = popen("tail -f /path/to/my/logfile.log 2>&1", 'r');

while(!feof($handle)) {
    $buffer = fgets($handle);
    // здесь будет вызов API
    ob_flush();
    flush();
}
pclose($handle);
Вопрос: Как сделать шаблон для WP с возможностью изменения текста и картинок?

Лучший ответ: В самом коде можно менять. Либо создаете post type и к нему можно прикрутит плагин ACF для допопнительных полей, потом просто через админку в post type заходите.

Худший ответ: Очень много переменных, уточните, что вам нужно конкретно. Вообще он делается стандартно, это базовые возможности. Вариантов исполнения - море.
Вопрос: В чем разница между JRE и обычной Java?

Лучший ответ: "Java", которую вы загружаете с главной страницы - это и есть JRE.

Худший ответ: JRE - Java Runtime Environment - Среда выполнения джава программ (это и есть "обычная", как уже сказали)
JDK - Java Development Kit - инструментальный набор для разработчика программ на джава (компилятор, библиотеки, еще какая-нибудь хрень)
Вопрос: Почему виртуальная машина с CentOS 7 не может выйти в интернет?

Лучший ответ: Все разобрался в причине. Причина проста - сам дурак ))
Все оказалось банально просто - виртуальная centos получала ип-адрес из группы ип-адресов, которым запрещено выходить в инет )))

Худший ответ: тип подключения какой?
У меня примерно так:
Дефолтный свич подключен только к виртуальному роутеру microtick 
Свич local подключен к виртуалкам. Это позволило не терять подключение при поднятии VPN
Вопрос: Почему не запускается скрипт через systemd?

Лучший ответ: Чтобы победить вот эту строкуstart_bot.service: Start request repeated too quickly.
Можно добавить:Restart=always
RestartSec=15
А на счет того почему падает сам питоновский скрипт - стоит логировать ошибку куда-нибудь в файл.

Худший ответ: данных не хвататет.
посмотреть что не нравится vk_image_bot.py что он завершается и выкидывает статус 1.
мож пользователь не подходит, мож еще чаго...
напихать в vk_image_bot.py побольше информационных сообщений. а то отладка немой проги хуже секса с холодной женщиной...
Вопрос: Какой роутер взять, чтобы на нем можно было настроить «страницу приветствия»?

Лучший ответ: Mikrotik. И это настроите и в случае если ещё шашечек захочется, будет куда размахнуться.

Худший ответ: Любые, способные прошиться на dd-wrt/tomato, например. Или более высокого ценового сегмента с родной прошивкой, умеющей Captive portal.
Вопрос: Как устроены сервисы подобные deal.by?

Лучший ответ: 1 ставите вордпресс, делаете мультидомены и изучаете структуру БД
2 ставите опенкарт, включаете мультимагазин и изучаете структуру БД
3 папки не создаются, файлы никуда не копируются, шаблон один на всех(или разные шаблоны, но он один, а для субдомена выбирается один из них. на 1000 субдоменов может быть 5 шаблонов на выбор).
4 да, структура таблиц под каждый субдомен своя уникальная(копируется дефолтная), добавляется префикс для уникальности.

Худший ответ: Поскольку вопрос имеет тэг Python: https://github.com/bernardopires/django-tenant-schemas
Вопрос: Возможно ли использовать setter без @property?

Лучший ответ: class Example:
    def x(self, value):
        self._x = value

    x = property(fset=x)
Ещё можно написать свой дескриптор или использовать метод __setattr__

Худший ответ: Вариант через functools.partialfrom functools import partial

writeonly_prop=partial(property, None)

class Test:
    @writeonly_prop
    def secret(self, val):
        self.__value = val

    def print_secret(self):
        print(self.__value)

    def __init__(self):
        self.__value = None

t = Test()
t.secret = 12
t.print_secret()
Вопрос: Хочу «шагать» весь код C# в VS, как это осуществить?

Лучший ответ: Самый простой способ, как я считаю, посмотреть что внутри, это через Решарпер и его функцию Decompile methods.
Находится это options/External Sources и поставить все галочки внутри Navigation to Sources.
Если без Решарпера, то чтобы дебажить  исходники .net, у Вас должны быть скачаны отладочные pdb файлы. Для этого так же нужно сделать некоторые настройки в  vs. 
В первую очередь желательно выставить сервер для скачки отладочных символов Tools/options/Debugging/Symbols ставим галочку Microsoft Symbol Servers, можно тут же указать папку для кеширования Ваших символов и нажать кнопку Load all Symbols, чтоб они лишний раз не подгружались каждом запуске проекта.
Дальше идем в Tools/options/Debugging/General и выставляем галочки Enable .NET Framework source stepping. У Вас сразу спросят, подгрузить ли отладочные символы, на что Вы соглашаетесь. При этом у Вас отключиться опция "только мой код".
 Чтобы дебажить сторонние библиотеки, для этого авторы должны предоставить свои отладочные символы, что я еще не встречал) Хотя есть ресурсы, где народ их выкладывает для общего пользования.
Недавно я на это вопрос уже отвечал тут

Худший ответ: Если хочешь посмотреть на код метода, то можно навести на него мышкой в коде нажать на ПКМ и в контекстном меню выбрать перейти к определению и тебя перекинет на файл где написана та функция
Вопрос: Можно ли из JS передать обработанное изображение в $_FILES?

Лучший ответ: нет. в FILES попадают только инпуты файлов формы

но как вы отправляете данные их нужно ловить через
$rawData = file_get_contents("php://input");
посмотрите примеры как через js ajax отправить в php://input
Скорее всего  var data = new FormData();  не нужен будет

Худший ответ: Да, можно.

var data = new FormData();
// вариант 1 (если blob был получен из canvas.toBlob(), то он уже будет иметь правильный mime-type)
data.append("file_field_blob", blob, "filename1.jpg");
// вариант 2
data.append("file_field_file_1", new File([blob], "(будет-проигнорировано).jpg", {type:'image/jpeg'}), "filename2.jpg");
// или так
data.append("file_field_file_2", new File([blob], "filename3.jpg", {type:'image/jpeg'}));
var request = new XMLHttpRequest();
request.onload = function() {
	if (this.status >= 200 && this.status < 400){
		document.write(this.response);
	}
};
request.open("POST", "phpinfo.php");
request.send(data);
Результат:
$_SERVER['HTTP_CONTENT_TYPE'] = multipart/form-data; boundary=--...
$_FILES['file_field_blob'] = Array (
    [name] => filename1.jpg
    [type] => image/jpeg
    [tmp_name] => C:\...\php....tmp
    [error] => 0
    [size] => 46196
)
$_FILES['file_field_file_1'] = Array (
    [name] => filename2.jpg
    [type] => image/jpeg
    [tmp_name] => C:\...\php....tmp
    [error] => 0
    [size] => 46196
)
$_FILES['file_field_file_2'] = Array (
    [name] => filename3.jpg
    [type] => image/jpeg
    [tmp_name] => C:\...\php....tmp
    [error] => 0
    [size] => 46196
)
new File() - https://developer.mozilla.org/en-US/docs/Web/API/F...
FormData - https://developer.mozilla.org/en-US/docs/Web/API/F...

Upd:
Не используйте readAsDataURL! Вместо него надо использовать FileReader.readAsArrayBuffer().
А если нужна ссылка, например для  то нужно создавать её через URL.createObjectURL (и после использования удалять через URL.revokeObjectURL())