Как отправить JSON файл на сайт через Moonloader

Double Tap Inside

Известный
Автор темы
Проверенный
1,915
1,260
Версия MoonLoader
.026-beta
Как отправить JSON файл на сайт через Moonloader?

1. Какие есть варианты?
2. Что должно быть на сайте?
3. Как это выглядит в lua коде, конкретные функции, примеры

Мне надо будет отправлять такой файл и подобный файл забирать с сайта. Файл на 200 кб примерно плюс минус 100кб

Спасибо!
 
Решение
Жду нативную функцию получше.
Если нет из коробки функции, то это не значит что нужно изобретать колесо заново. Причем овальное колесо
А если у пользователя нет либы?
Ну значит принудительно ему догрузить недостающую часть библиотек. Да и вряд ли сейчас у людей нет либы requests


Вот полноценный пример от меня с использованием либы requests

Немного поправил свой код пыхи выше. Файл upload.php
PHP:
<?php
if(isset($_FILES['file_upload'])) {
    $target_dir = "uploads_files/";
    $target_file = $target_dir . basename($_FILES["file_upload"]["name"]);
    if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $target_file)) {
        echo "OK. File upload to ".$target_file;
    }
}
?>

Функа отправки файлов на...

Leatington

Фанат Рейзора
264
75
1. Через HTTP с помощью POST или разбитием файла и последующей отправкой через сокеты.
2. Если HTTP, то с помощью PHP функцией
PHP:
$array = file_get_contents('php://input');
.
3. Не найду сейчас.

А вообще, если через moonloader и файл имеет небольшой размер, перегони массив в строку и отправь через нативную функцию муна, так будет проще.
 
  • Нравится
Реакции: YarikVL

Double Tap Inside

Известный
Автор темы
Проверенный
1,915
1,260
1. Через HTTP с помощью POST или разбитием файла и последующей отправкой через сокеты.
2. Если HTTP, то с помощью PHP функцией
PHP:
$array = file_get_contents('php://input');
.
3. Не найду сейчас.

А вообще, если через moonloader и файл имеет небольшой размер, перегони массив в строку и отправь через нативную функцию муна, так будет проще.
Спасибо, но пока шо мне этого недостаточно. Кстати, какая там нативная функция муна для отправки файла?
 

Ulong

Диванный критик
Проверенный
70
411
1. Через HTTP с помощью POST или разбитием файла и последующей отправкой через сокеты.
2. Если HTTP, то с помощью PHP функцией
PHP:
$array = file_get_contents('php://input');
.
А вообще, если через moonloader и файл имеет небольшой размер, перегони массив в строку и отправь через нативную функцию муна, так будет проще.
Какой же бред. Полное извращение

Через любую соответствующую либу отправлять post запрос на свой сайт, но так же нужно заполнять заголовки content-type, content-length соответственно
На веб сервере, с помощью php, принимать и сохранять файл так:
PHP:
<?php
    $t_dir = "uploads_files/";
    $t_file = $t_dir . basename($_FILES["file_upload"]["name"]);
    move_uploaded_file($_FILES['file_upload']['tmp_name'], $t_file);
?>
 

Leatington

Фанат Рейзора
264
75
Какой же бред. Полное извращение
Жду нативную функцию получше.

Через любую соответствующую либу
А если у пользователя нет либы?

Спасибо, но пока шо мне этого недостаточно. Кстати, какая там нативная функция муна для отправки файла?
downloadUrlToFile(url, path, callback)
 

Ulong

Диванный критик
Проверенный
70
411
Жду нативную функцию получше.
Если нет из коробки функции, то это не значит что нужно изобретать колесо заново. Причем овальное колесо
А если у пользователя нет либы?
Ну значит принудительно ему догрузить недостающую часть библиотек. Да и вряд ли сейчас у людей нет либы requests


Вот полноценный пример от меня с использованием либы requests

Немного поправил свой код пыхи выше. Файл upload.php
PHP:
<?php
if(isset($_FILES['file_upload'])) {
    $target_dir = "uploads_files/";
    $target_file = $target_dir . basename($_FILES["file_upload"]["name"]);
    if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $target_file)) {
        echo "OK. File upload to ".$target_file;
    }
}
?>

Функа отправки файлов на сервер
Lua:
local requests = require('requests')

function sendFile(req_url, req_file, req_post_param)
    local fHandle = io.open(req_file,'rb')
    if fHandle then

        local f_name = string.match(req_file, '([^/]+)$')
        local f_content = fHandle:read('*a')
        fHandle:close()

        local boundary = 'BNDR'
        local header_frmt = string.format('content-disposition: form-data; name="%s"; filename="%s"\r\ncontent-type: application/octet-stream\r\n', req_post_param, f_name)
        local body = string.format('--%s\r\n%s\r\n%s\r\n--%s--\r\n', boundary, header_frmt, f_content, boundary)

        local response = requests.post(req_url, {
            headers = {
                ['Content-Type']    = string.format('multipart/form-data; boundary=%s', boundary),
                ['Content-Length']  = body:len()
            },
            data = body
        })
        if response.status_code == 200 then return true, response.text end
    end
    return false
end

local result, text = sendFile('https://site.com/upload.php', getGameDirectory()..'/moonloader/folder/my_file.txt', 'file_upload')

if result then print(string.format('Site answer: %s', text)) end
 

Leatington

Фанат Рейзора
264
75
Этой функцией я смогу послать файл с компа на сайт?
Только если перегонишь файл в строку и через GET запрос, не лучший вариант, но прекрасно подойдёт, если файл небольшой (до 32мб).
Если есть желание использовать сторонние библиотеки, используй пример человека выше.
 
  • Влюблен
Реакции: Double Tap Inside