Everything posted by MrShandy
-
Проблема с загрузкой файлов по REST API
Какое API такое и решение) Ну если они не смогли даже нормально задокументировать всё, как я должен по другому действовать? Вариант рабочий, проблем не должен создать. Если найду решение лучше - обязательно напишу здесь, но пока будет так
-
Проблема с загрузкой файлов по REST API
Можно закрывать тему, решил 🙂 Просто заменил строку $fileObject = \IPS\File::create( 'downloads_Files', $name, $_POST['files'][ $name ] ); на $fileObject = \IPS\File::create( 'downloads_Files', $name, base64_decode($_POST['files'][ $name ]) ); На стороне клиента (в моём случае приложения на Python) так: "files[archive.zip]": base64.b64encode(file_content.read()).decode('utf-8')
-
Проблема с загрузкой файлов по REST API
Ну а как я должен отправить не текстовую информацию?) Не, можно впринципе сделать ход конем и отправлять base64, а на сервере это обратно. Вопрос в адекватности таких действий
-
Проблема с загрузкой файлов по REST API
Окей, это работает Сейчас проверю с отправкой файла в байтах, иначе как условный архив туда закинуть @Desti, проверил, текст отправляется без проблем. Байты нет, ошибка нет файлов Текст: Для байтов: Забавно на самом деле
-
Проблема с загрузкой файлов по REST API
Только при этом ниже имеем: foreach ( array_keys( Request::i()->files ) as $name ) { $fileObject = \IPS\File::create( 'downloads_Files', $name, $_POST['files'][ $name ] ); Db::i()->insert( 'downloads_files_records', array( 'record_file_id' => $file->id, 'record_type' => 'upload', 'record_location' => (string) $fileObject, 'record_realname' => $fileObject->originalFilename, 'record_size' => $fileObject->filesize(), 'record_time' => time(), ) ); } То есть файлы должны быть и в $_POST? Я не знаю php, но $_POST это же data, а не параметры, правильно? Ну и опять же, в параметры невозможно передать dict. Это как минимум не логично Traceback (most recent call last): File "C:\Users\MrSha\Documents\Projects\ICFileUploader\main.py", line 57, in <module> loop.run_until_complete(main()) File "C:\Users\MrSha\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 649, in run_until_complete return future.result() File "C:\Users\MrSha\Documents\Projects\ICFileUploader\main.py", line 52, in main await upload_file(data_files) File "C:\Users\MrSha\Documents\Projects\ICFileUploader\main.py", line 27, in upload_file async with session.post(url, params=params, data=data_files) as response: File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\aiohttp\client.py", line 1141, in __aenter__ self._resp = await self._coro File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\aiohttp\client.py", line 508, in _request req = self._request_class( File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\aiohttp\client_reqrep.py", line 283, in __init__ url2 = url.with_query(params) File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\yarl\_url.py", line 1007, in with_query new_query = self._get_str_query(*args, **kwargs) or "" File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\yarl\_url.py", line 968, in _get_str_query query = "&".join(self._query_seq_pairs(quoter, query.items())) File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\yarl\_url.py", line 931, in _query_seq_pairs yield quoter(key) + "=" + quoter(cls._query_var(val)) File "C:\Users\MrSha\.virtualenvs\ICFileUploader-DZz49JbJ\lib\site-packages\yarl\_url.py", line 946, in _query_var raise TypeError( TypeError: Invalid variable type: value should be str, int or float, got {'archive.zip': [b'PK\x03\x04\x14\x00\x00\x00\x08\x00\x1d`\xf3V2\xc6\np\xbd\x01\x00\x00*\x03\x00\x00\x07\x00\x00\x00main.pymRM\x8f\xd30\x10\xbdG\xca\x7f\x18\x89\x83\x1b)\x9b\xb44\x9be#\xf5\xb0\x12 q\xe0\x06\x12\x12\xe2\xe0\xd8\x93\xc6\xda\xc46\xb6\x03t\x11\xff\x1d\xdbqKw\x85\xe5\x83g<\xef\xbd\xf9\x12\xb3V\xc6AO-\xb6M\x9e\xe5Yr\x18\xfc\xbe\xa0u6\xb8\x163\xc1\x01\xc8\xe8\x9c\xb6]][f\xa8\x9e\x91\x8dT\nV\x99\xa5\xa6Z\xd4\\\xfd\x94\x93\xa2\xdc\xd6\x83\x98\xd0\x92<s\xea\x11e\xc0\xe1\xb6i\x18\xc5v\x8b\x03\xbd\xc3\xfb\xbb}\xdb\xf48 \xbf\x7f\xd3\xb3]?\xec}\xac\xa6\x86\xce\xd6\x07\xff\xce3\xf0\x870\xea\xf0\xa8\xcc\x89t\xb0{\xbd/\x01^\xc1\x87\xb7 \x97\xb9G\x03j\x007"\x9cc\xa2\x11T\xc1\x8ej\x998\xf4\xfe\xcf\xa0\xff\xe5 d"\xa4\x8b\x1b\x95\xf1t\xcdm\xfb\x7f\xba\x19\xa3\x15\x91B\x1e/\xac\x89\xc0\t7\xa1\xc7\x13j\xd8(~`\xf5$4\x89LQZ\xd2\xf9\x1c\xc9\xd1wHh\'\x94\x0c\xf1\x9fFa\xc1_*!A#\xa2\xba\x02_!\x12\xc7\xda\xc4\xee\xdc\x8fp\x9e\tw\xa04\xca\xcd\x8bd\x88\xe9IqaeJ:\x94ne\xf8\x93g\xfe\x8eH9\x9a\xebF\x7f\xb9y\x88\x9d\x11O4%\xbc\xaeB\xd5\xb7\rJ\xa68n\xe2 \xabd\x14E\xc5q}\x95\x89\xe2\xb3Es\xf3p\xf4R\xa1\xdc\x8f\xa7`G\xb3\xdeU[\x12u\xf3\xcc\xa0\xd5JZ\x84\xc3e\xb5*\xad\xac\xdb\xf8\xe5*c\xbe\xf6\xb0n\xc1\xd7T\xfc\xb7\x128u4y\x0b\xbf\x99\x03\x9cY*\xf5\xd8\xad\xea\xda\x08\xe96\xe4}(x\xd1a\x03\xfd\xd4\xed\xc2\x18Z;,\xd3t\xaa\x88\x87\xe2d\xf1\x05\x80z\x04\x07\xa7\x12j\x9d\t\xbc3F\x99\x8e\x94\xff\x94\x1c\xferE\xa8\xe0/PK\x01\x02\x1f\x00\x14\x00\x00\x00\x08\x00\x1d`\xf3V2\xc6\np\xbd\x01\x00\x00*\x03\x00\x00\x07\x00$\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00main.py\n\x00 \x00\x00\x00\x00\x00\x01\x00\x18\x00\x9d\x82\xe6\x88\x1f\xba\xd9\x01\x9d\x82\xe6\x88\x1f\xba\xd9\x01\x07Rx\xa3\x1e\xba\xd9\x01PK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00Y\x00\x00\x00\xe2\x01\x00\x00\x00\x00']} of type <class 'dict'>
-
Проблема с загрузкой файлов по REST API
Ну допустим так, но надо как то туда передать список? Если это вообще возможно передать в параметрах. Мне бы просто понять как отправлять, хотя бы через postman, а там уже разберусь как на питоне написать API у них убогий какой то, можно было в разы лучше сделать
-
Проблема с загрузкой файлов по REST API
Ну я видел это, передаю список, но результат ошибка. Как мне запрос то делать надо?
-
Проблема с загрузкой файлов по REST API
Params: {'category': 5, 'author': 1, 'title': 'archive.zip', 'description': '<p>This is an archive file.</p>', 'hidden': 1, 'files': ['archive.zip']} Data: {'archive.zip': [b'PK\x03\x04\x14\x00\x00\x00\x08\x00\x1d`\xf3V2\xc6\np\xbd\x01\x00\x00*\x03\x00\x00\x07\x00\x00\x00main.pymRM\x8f\xd30\x10\xbdG\xca\x7f\x18\x89\x83\x1b)\x9b\xb44\x9be#\xf5\xb0\x12 q\xe0\x06\x12\x12\xe2\xe0\xd8\x93\xc6\xda\xc46\xb6\x03t\x11\xff\x1d\xdbqKw\x85\xe5\x83g<\xef\xbd\xf9\x12\xb3V\xc6AO-\xb6M\x9e\xe5Yr\x18\xfc\xbe\xa0u6\xb8\x163\xc1\x01\xc8\xe8\x9c\xb6]][f\xa8\x9e\x91\x8dT\nV\x99\xa5\xa6Z\xd4\\\xfd\x94\x93\xa2\xdc\xd6\x83\x98\xd0\x92<s\xea\x11e\xc0\xe1\xb6i\x18\xc5v\x8b\x03\xbd\xc3\xfb\xbb}\xdb\xf48 \xbf\x7f\xd3\xb3]?\xec}\xac\xa6\x86\xce\xd6\x07\xff\xce3\xf0\x870\xea\xf0\xa8\xcc\x89t\xb0{\xbd/\x01^\xc1\x87\xb7 \x97\xb9G\x03j\x007"\x9cc\xa2\x11T\xc1\x8ej\x998\xf4\xfe\xcf\xa0\xff\xe5 d"\xa4\x8b\x1b\x95\xf1t\xcdm\xfb\x7f\xba\x19\xa3\x15\x91B\x1e/\xac\x89\xc0\t7\xa1\xc7\x13j\xd8(~`\xf5$4\x89LQZ\xd2\xf9\x1c\xc9\xd1wHh\'\x94\x0c\xf1\x9fFa\xc1_*!A#\xa2\xba\x02_!\x12\xc7\xda\xc4\xee\xdc\x8fp\x9e\tw\xa04\xca\xcd\x8bd\x88\xe9IqaeJ:\x94ne\xf8\x93g\xfe\x8eH9\x9a\xebF\x7f\xb9y\x88\x9d\x11O4%\xbc\xaeB\xd5\xb7\rJ\xa68n\xe2 \xabd\x14E\xc5q}\x95\x89\xe2\xb3Es\xf3p\xf4R\xa1\xdc\x8f\xa7`G\xb3\xdeU[\x12u\xf3\xcc\xa0\xd5JZ\x84\xc3e\xb5*\xad\xac\xdb\xf8\xe5*c\xbe\xf6\xb0n\xc1\xd7T\xfc\xb7\x128u4y\x0b\xbf\x99\x03\x9cY*\xf5\xd8\xad\xea\xda\x08\xe96\xe4}(x\xd1a\x03\xfd\xd4\xed\xc2\x18Z;,\xd3t\xaa\x88\x87\xe2d\xf1\x05\x80z\x04\x07\xa7\x12j\x9d\t\xbc3F\x99\x8e\x94\xff\x94\x1c\xferE\xa8\xe0/PK\x01\x02\x1f\x00\x14\x00\x00\x00\x08\x00\x1d`\xf3V2\xc6\np\xbd\x01\x00\x00*\x03\x00\x00\x07\x00$\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00main.py\n\x00 \x00\x00\x00\x00\x00\x01\x00\x18\x00\x9d\x82\xe6\x88\x1f\xba\xd9\x01\x9d\x82\xe6\x88\x1f\xba\xd9\x01\x07Rx\xa3\x1e\xba\xd9\x01PK\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00Y\x00\x00\x00\xe2\x01\x00\x00\x00\x00']}
-
Проблема с загрузкой файлов по REST API
Ну заголовками управляет aiohttp, моё дело рулить данными Вот какие он выставляет Headers: <CIMultiDictProxy('Host': 'scrapmechanic.ru', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Python/3.10 aiohttp/3.8.4', 'Authorization': 'Basic токен', 'Content-Length': '1485', 'Content-Type': 'application/x-www-form-urlencoded')> Насильно выставить multipart/form-data не дало результата Headers: <CIMultiDictProxy('Host': 'scrapmechanic.ru', 'Accept': 'application/json', 'Content-Type': 'multipart/form-data', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Python/3.10 aiohttp/3.8.4', 'Authorization': 'Basic токен', 'Content-Length': '1485')> Response JSON: {'errorCode': '1L296/B', 'errorMessage': 'NO_FILES'}
-
Проблема с загрузкой файлов по REST API
Не совсем понимаю как мне загружать файлы по REST API. Написал скрипт на python для загрузки, но как бы я не пробовал, ничего не получается. Если кто то делал, можете подсказать как именно отправляли файлы? Вот скрипт, может я в чем то ошибаюсь? Хотя мы с напарником многое перепробовали уже и пока никаких результатов. Вот часть кода API, ориентировался на него когда писал скрипт. Ошибку постоянно получаю эту: Failed to upload file. Error: { "errorCode": "1L296\/B", "errorMessage": "NO_FILES" } Если вывести \IPS\Request::i()->files вместо 'NO_FILES' выводится последний элемент массива files. Пока не понял логику этого
-
Ftp хранение данных ?
Во дела, интересно
-
Ftp хранение данных ?
Нет, ну понятно, что протокол передачи есть, а как отдавать этот контент? Сам фтп на фронте по понятным причинам работать не будет, веб сервер на хранилище делать? Правда такое раньше было? Очень интересно узнать как работало
-
Проблема с REST API форума
Ну, все перечислять долго. Ну а если в общем, то изменение client_max_body_size и установка времени кэширования Проблема была в том, что когда то пытался перейти с apache на php-fpm, но затея провалилась и я забыл убрать локацию /api из конфига Но главное проблема решена, так что всё гуд
-
Проблема с REST API форума
Решено! Была проблема в nginx, за которым работает Apache Nginx отдельно обрабатывал локацию api, поэтому возникала проблема
-
Проблема с REST API форума
Возникла потребность во внешнем инструменте, решил взаимодействовать через API, но обнаружил проблему. При попытке сделать GET запрос api/core/hello получаю это: { "errorCode": "3S290/3", "errorMessage": "INVALID_APP" } Не знаю когда и почему возникла ошибка, но раньше API работало без ошибок. Любой запрос возвращает такую ошибку. Ключ API действительный. На сайте https://invisioncommunity.com/developers/rest-api написано: 3S290/3 INVALID_APP The endpoint the request was sent to does not exist (the first level contains an invalid character, only alphanumerics are acceptable). Но по идее у меня все правильно настроено, в т.ч. в .htaccess. Эндпоинт правильный
-
Ftp хранение данных ?
А как это работать будет?
-
(db) Levels
В настройках плагина ничего интересного нет В настройках званий или репутации тоже ничего интересного нет. Вообще судя по всему оно выводит уровень под текущим аккаунтом. Для гостя у всех будет 1 уровень
-
(db) Levels
Есть проблема, у всех почему то отображается одинаковый уровень: С чем это может быть связано? И как починить
-
Чат для общения.
Вопрос. Почему просто баннер с ссылкой, а не РСЯ или AdSense?
-
Плеер для форума
Ну а если как то шифровать на сервере и расшифровывать на клиенте? Да, скачать будет можно, но уже сильно сложнее
-
(aXen) Font Awesome 6 in IPS
Есть проблема с дискордом Вот код класса этого элемента: .cShareLink_discord .fa-discord { display: block; width: 1em; height: 1em; background-image: url(data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 198.17'%3E%3Cpath d='M216.86 16.6C200.29 8.85 182.57 3.21 164.05 0c-2.28 4.11-4.93 9.65-6.77 14.05-19.69-2.96-39.2-2.96-58.53 0C96.92 9.65 94.2 4.12 91.9 0 73.36 3.21 55.62 8.86 39.04 16.64 5.62 67.15-3.44 116.4 1.09 164.96c22.17 16.56 43.65 26.61 64.78 33.19 5.22-7.18 9.87-14.81 13.87-22.85-7.63-2.9-14.94-6.48-21.85-10.63 1.83-1.36 3.62-2.78 5.36-4.24 42.12 19.7 87.89 19.7 129.51 0 1.75 1.46 3.54 2.88 5.36 4.24-6.93 4.17-14.26 7.75-21.89 10.65 4.01 8.02 8.64 15.67 13.87 22.85 21.14-6.58 42.65-16.64 64.82-33.21 5.32-56.29-9.08-105.09-38.06-148.36ZM85.47 135.09c-12.64 0-23.01-11.8-23.01-26.18s10.15-26.2 23.01-26.2 23.24 11.8 23.01 26.2c.02 14.38-10.15 26.18-23.01 26.18Zm85.05 0c-12.64 0-23.01-11.8-23.01-26.18s10.15-26.2 23.01-26.2 23.24 11.8 23.01 26.2c0 14.38-10.15 26.18-23.01 26.18Z' fill='%23fff'/%3E%3C/svg%3E); background-size: contain; background-position: 50%; background-repeat: no-repeat; А в .fa-discord:before { content: '\f392'; } Но этот если отключить бэкграунд у .cShareLink_discord .fa-discord отображается так: Единственным решением вижу правку файла FA 6, но мне кажется это неправильно. Есть какие нибудь еще варианты решения? Тему использую Fluent Design Theme Edition 4.4.0, от того же автора. Там заявлена совместимость с этим приложением, то есть по логике проблем быть не должно.
-
Новогодняя гирлянда ВК 2024
-
РОЗЫСК Sipsb (сомнительные операции)
А в итоге заявление в полицию и регистратору было написано?
-
Вызов формы обратной связи с установленными значениями с помощью кнопки
Цель: Сделать кнопку, по нажатии на которую будет показываться форма обратной связи с уже установленными значениями темы и текстом. В идеале чтобы тему вообще нельзя было изменить пользователю. Саму кнопку сделать для меня не проблема, шаблоны править я умею. А вот с PHP есть проблемки, поэтому не знаю как это можно сделать, и возможно ли впринципе. Думаю, в моём случае нужен плагин, но я не нашел подходящий Заранее спасибо за помощь 🙂
- Русский язык для Invision Community