پرش به محتویات

چطور فایل را به بله بارگذاری کنیم؟

برای sendPhoto، sendAudio، sendDocument، sendVideo، sendVoice و sendAnimation، مقدار رشته‌ای فقط یک file_id بله یا نشانی اچ‌تی‌تی‌پی است. مسیر محلی به‌شکل رشته‌ای خودکار بارگذاری نمی‌شود.

use Sajaddp\Bale\Facades\Bale;
use SplFileInfo;

// استفادهٔ مجدد از فایل موجود بله
Bale::sendDocument(
    chatId: 123456789,
    document: 'bale-file-id',
    options: ['caption' => 'فایل قبلی'],
);

// ارسال نشانی قابل‌دسترسی اچ‌تی‌تی‌پی
Bale::sendVideo(chatId: 123456789, video: 'https://example.test/video.mp4');

// بارگذاری صریح محلی با دادهٔ چندبخشی
Bale::sendDocument(
    chatId: 123456789,
    document: new SplFileInfo(storage_path('app/report.pdf')),
);

طبق مستندات فعلی بله، sendPhoto علاوه بر مقصد به from_chat_id نیاز دارد:

Bale::sendPhoto(
    chatId: '@target_channel',
    fromChatId: '@source_channel',
    photo: new SplFileInfo(storage_path('app/example.jpg')),
);

ارسال گروه رسانه

برای آلبوم از آرایهٔ خام مستند بله استفاده کنید. هر فایل پیوست محلی باید نامی روشن و ارجاع متناظر attach://name داشته باشد.

Bale::sendMediaGroup(
    chatId: 123456789,
    media: [
        ['type' => 'photo', 'media' => 'attach://first'],
        ['type' => 'photo', 'media' => 'attach://second'],
    ],
    attachments: [
        'first' => new SplFileInfo(storage_path('app/first.jpg')),
        'second' => new SplFileInfo(storage_path('app/second.jpg')),
    ],
);

چطور فایل دریافتی بله را دانلود کنیم؟

getFile($fileId) متد رسمی برای اطلاعات فایل است. downloadFile($fileId) متد کمکی لاراول بله است: ابتدا getFile را اجرا می‌کند، وجود file_path غیرخالی را می‌خواهد و محتوای دودویی را برمی‌گرداند. هیچ‌کدام نشانی دانلودِ حاوی توکن را عمومی نمی‌کنند.

use Illuminate\Support\Facades\Storage;

Storage::put(
    'bale/document.pdf',
    Bale::downloadFile($fileId),
);

لاراول بله به سامانهٔ فایل وابسته نیست؛ ذخیره‌سازی، نام فایل، بررسی گونهٔ محتوا و سیاست دسترسی با برنامه است. برای آزمون بارگذاری چندبخشی و دانلود بدون شبکه، راهنمای آزمون را ببینید.