for (let i = 0; i < files.length; i++) {
formData.append("files", files[i]); // имя должно совпадать в модели, то есть для моего случая первая буква в нижнем регистре остальные в верхнем Files -> files, FirstName -> firstName
}
Add-Type -AssemblyName System.Web
Add-Type -AssemblyName System.Net.Http
$uri = "https://api.telegram.org/bot$code/sendDocument"
$form = New-Object System.Net.Http.MultipartFormDataContent
$chatId = New-Object System.Net.Http.StringContent $Chat_ID
$FileName = "D:\mydoc.txt"
$form.Add($chatId, 'chat_id')
$fileContent = Get-Content $FileName -Encoding Byte
$byteContent = New-Object System.Net.Http.ByteArrayContent ($fileContent, 0, $fileContent.Length)
$byteContent.Headers.Add('Content-Type',[System.Web.MimeMapping]::GetMimeMapping($FileName))
$form.Add($byteContent, 'document', (Split-Path $filename -Leaf))
$ms = New-Object System.IO.MemoryStream
$ca = $form.CopyToAsync($ms)
$ca.Wait()
Invoke-WebRequest -Method Post -Body $ms.ToArray() -Uri $uri -ContentType $form.Headers.ContentType.ToString()
$ErrorActionPreference = 'Stop'
$fieldName = 'file'
$filePath = 'C:\Temp\test.pdf'
$url = 'http://posttestserver.com/post.php'
Try {
Add-Type -AssemblyName 'System.Net.Http'
$client = New-Object System.Net.Http.HttpClient
$content = New-Object System.Net.Http.MultipartFormDataContent
$fileStream = [System.IO.File]::OpenRead($filePath)
$fileName = [System.IO.Path]::GetFileName($filePath)
$fileContent = New-Object System.Net.Http.StreamContent($fileStream)
$content.Add($fileContent, $fieldName, $fileName)
$result = $client.PostAsync($url, $content).Result
$result.EnsureSuccessStatusCode()
}
Catch {
Write-Error $_
exit 1
}
Finally {
if ($client -ne $null) { $client.Dispose() }
if ($content -ne $null) { $content.Dispose() }
if ($fileStream -ne $null) { $fileStream.Dispose() }
if ($fileContent -ne $null) { $fileContent.Dispose() }
}
const number = new URLSearchParams(link).get("TicketNumber");
TicketNumber=(\d+)
map $arg_arg1 $conf {
default "conf.js";
"4982948394" "conf2.js";
}
server {
location = /conf.js {
alias /config/$conf;
}
geo $a {
default 0;
192.168.1.0/24 1;
10.1.0.0/16 1;
}
map $a$request_uri $b {
default 0;
~^1/mddd/service/test/exec-post\?f=modules\.testmodules 1;
}
server {
if ($b) {
return 403;
}
var testFiles = Directory.EnumerateFiles(solutionDirectory + @"\samples");
var sortedTestFiles1 = testFiles.OrderBy(x => x, new NaturalComparer());
// или
var sortedTestFiles2 = testFiles.ToList();
sortedTestFiles2.Sort(new NaturalComparer());
/// <summary>
/// Натуральное сравнение строк
/// </summary>
public class NaturalComparer : IComparer<string>
{
/// <summary>
/// Вызов WinApi-функции для натурального сравнения строк
/// </summary>
[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);
/// <summary>
/// Натуральное сравнение строк
/// </summary>
/// <param name="x">Первая строка</param>
/// <param name="y">Вторая строка</param>
/// <returns>Сравнивает две строки, возвращая -1, 0 или 1</returns>
public static int Compare(string x, string y)
{
return StrCmpLogicalW(x, y);
}
/// <summary>
/// Натуральное сравнение строк
/// </summary>
/// <param name="x">Первая строка</param>
/// <param name="y">Вторая строка</param>
/// <returns>Сравнивает две строки, возвращая -1, 0 или 1</returns>
int IComparer<string>.Compare(string x, string y)
{
return StrCmpLogicalW(x, y);
}
}
public static IOrderedEnumerable<T> OrderByAlphaNumeric<T>(this IEnumerable<T> source, Func<T, string> selector)
{
int max = source
.SelectMany(i => Regex.Matches(selector(i), @"\d+").Cast<Match>().Select(m => (int?)m.Value.Length))
.Max() ?? 0;
return source.OrderBy(i => Regex.Replace(selector(i), @"\d+", m => m.Value.PadLeft(max, '0')));
}
<?
namespace Gricuk\Sale;
class OrderEvents
{
/**
* 1) Смена статуса для отмененного заказа
* 2) Комиссия за наложенный платёж
* @param \Bitrix\Main\Event $event
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events/order_saved.php
*/
public static function OnSaleOrderBeforeSavedHandler(\Bitrix\Main\Event $event)
{
/** @var \Bitrix\Sale\Order $order */
$order = $event->getParameter("ENTITY");
global $USER;
if (!$order->isNew()) {
$orderStatus = $order->getField("STATUS_ID");
if ($order->isCanceled() && ($orderStatus != "CN")) {
$order->setField("STATUS_ID", "CN");
$event->addResult(new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
array(
"RESULT" => $order,
)
));
}
return;
}
}
}
<?
$bxEventManager = \Bitrix\Main\EventManager::getInstance();
$bxEventManager->addEventHandler(
"sale",
"OnSaleOrderBeforeSaved",
array(
\Gricuk\Sale\OrderEvents::class,
"OnSaleOrderBeforeSavedHandler"
)
);
DELETE FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 100
DELETE FROM b_iblock_section WHERE id IN (
SELECT * FROM (
SELECT ID FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 0,100
) as `id`
)
UPDATE `table` SET `uid` = CASE
WHEN id = 1 THEN 2
WHEN id = 3 THEN 4
WHEN id = 5 THEN 6
ELSE uid
END
WHERE id in (1,2,3)
Единственное только, если расширить до 254 диапазон. Это не ограничится же только измеение последней цифры на с 220 на 254?
1\.1\.1\.(?:19[1-9]|2[0-4]\d|25[0-4])