Magento2: Bagaimana cara mengaktifkan pdf di wysiwyg untuk mengunggah lampiran ke produk?

9

Di mana saya bisa mengedit kode untuk mengaktifkan pdf atau bagaimana saya bisa melakukannya di Magento 2 untuk mengunggah lampiran pdf ke produk?

navya
sumber

Jawaban:

12

Saya telah membuat modul sederhana untuk memungkinkan jenis file tambahan di editor WYSIWYG. Modul ini tersedia di GitHub https://github.com/experius/Magento-2-Module-Experius-WysiwygDownloads

Tuan Lewis
sumber
Bagus. Bekerja dengan baik pada 2.1.10
vbak
@Pak. Lewis apakah itu akan berfungsi untuk format file .stl? dan bagaimana cara menginstal ini di magento 2? ada manual?
singkat
Anda dapat menemukannya di readme
Tn. Lewis
Saya tidak mendapatkan manual instalasi
Pelajar
masih bekerja di 2.3.2
Julime
4

saya menemukan masalah yang sama dan muncul dengan solusi out-of-the-box, yang hanya membutuhkan ftp / sftp-akses:

  • unggah pdf-icon (semacamnya ikon adobe pdf) ke folder (misalnya "pdf")
  • unggah semua file pdf Anda melalui ftp / sftp ke folder yang sama (di bawah / [webroot] / pub / media / wysiwyg / pdf (jika Anda memberi nama folder "pdf"))
  • jika Anda ingin menautkan ke pdf, lekatkan ikon tersebut dan letakkan tautan yang mengarahkan ke pdf yang dipermasalahkan di sekitar ikon tersebut. itu dia.

tambahan: Anda harus mengaktifkan pdf yang ditampilkan di editor wysywig. buat modul sederhana dengan di.xml yang menambahkan "pdf" ke ekstensi file yang dibolehkan dan terlihat seperti ini:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Cms\Model\Wysiwyg\Images\Storage">
        <arguments>
            <argument name="extensions" xsi:type="array">
                <item name="allowed" xsi:type="array">
                    <item name="pdf" xsi:type="number">1</item>
                </item>
                <item name="image_allowed" xsi:type="array">
                    <item name="pdf" xsi:type="number">1</item>
                </item>
            </argument>
        </arguments>
    </type>
</config>
EarlBromStyle
sumber
tidak bekerja untukku.
Sarfaraj Sipai
3

Anda dapat melakukannya dengan menambahkan "pdf" di bagian ekstensi yang diizinkan di bawah vendor/magento/module-cms/etc/di.xmlseperti di bawah ini:

<item name="allowed" xsi:type="array">
    <item name="jpg" xsi:type="number">1</item>
    <item name="jpeg" xsi:type="number">1</item>
    <item name="png" xsi:type="number">1</item>
    <item name="gif" xsi:type="number">1</item>
    <item name="pdf" xsi:type="number">1</item>
</item>
Varun Jyothi
sumber
1
Pastikan bahwa Anda harus membuat modul dan mengganti di.xml di sana
Varun Jyothi
1
Itu tidak bekerja untuk saya ... :( (cache dihapus)
Karol F
1
Pastikan juga nilai upload_max_filesize php.ini Anda cukup tinggi. Anda tidak akan melihat kesalahan di Magento jika nilai ini terlalu rendah. Ukuran PDF bisa lebih besar daripada gambar pada umumnya.
Anton Evers
2

Saya punya Magento 2.1.x dan saya harus menggunakan modul khusus untuk menimpa pengaturan dalam cms modul dan mengaktifkan unggahan pdf. Di sini bagaimana Anda menyelesaikannya .

medina
sumber
0

untuk membuat modul, Anda harus menggunakan seperti pembuat ini [ http://schogini.biz/magento_module_builder/]

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
     <type name="Magento\Cms\Model\Wysiwyg\Images\Storage">
        <arguments>
             <argument name="extensions" xsi:type="array">
                  <item name="allowed" xsi:type="array">
                       <item name="pdf" xsi:type="number">1</item>
                  </item>
             </argument>
        </arguments>
   </type>
</config>

Anda harus membuat beberapa modul dasar dan pada xml Anda harus meletakkan kode ini. Bagi saya bekerja.

Artashes Baghdasaryan
sumber
0

Anda tidak boleh memodifikasi kode inti Magento karena ketika kami meningkatkan kode kami tidak akan memutakhirkannya. Ekstensi yang bergantung pada kelas yang sama tidak akan lagi berfungsi dan tambalan tidak akan memiliki hasil yang diinginkan.

Jangan Ubah Kode Inti

Juga ... jika Anda ingin menambahkan pdf ke "Jenis File yang Diizinkan" di Magento, Anda dapat menggunakan referensi ini yang menyediakan petunjuk langkah demi langkah dengan menambahkan file konfigurasi sederhana yang menyertakan jenis file bersama dengan tipe standar DAN modul untuk menghidupkan / mematikan fitur ini.

Tambahkan pdf sebagai Jenis File yang Diizinkan dalam Magento

tony
sumber
0

Buat di.xml dalam modul khusus dan rekatkan kode di bawah ini di di.xml. Ini akan memungkinkan pengguna untuk mengunggah pdf di admin WYSIWYG editor.

<type name="Magento\Cms\Model\Wysiwyg\Images\Storage">
    <arguments>
        <argument name="resizeParameters" xsi:type="array">
            <item name="height" xsi:type="number">75</item>
            <item name="width" xsi:type="number">100</item>
        </argument>
        <argument name="extensions" xsi:type="array">
            <item name="allowed" xsi:type="array">
                <item name="jpg" xsi:type="string">image/jpg</item>
                <item name="jpeg" xsi:type="string">image/jpeg</item>
                <item name="png" xsi:type="string">image/png</item>
                <item name="gif" xsi:type="string">image/gif</item>
                <item name="pdf" xsi:type="string">application/pdf</item>
            </item>
            <item name="image_allowed" xsi:type="array">
                <item name="jpg" xsi:type="string">image/jpg</item>
                <item name="jpeg" xsi:type="string">image/jpeg</item>
                <item name="png" xsi:type="string">image/png</item>
                <item name="gif" xsi:type="string">image/gif</item>
            </item>
            <item name="media_allowed" xsi:type="array">
                <item name="flv" xsi:type="string">video/x-flv</item>
                <item name="avi" xsi:type="string">video/x-msvideo</item>
                <item name="mov" xsi:type="string">video/x-sgi-movie</item>
                <item name="rm" xsi:type="string">application/vnd.rn-realmedia</item>
                <item name="wmv" xsi:type="string">video/x-ms-wmv</item>
                <item name="pdf" xsi:type="string">application/pdf</item>
            </item>
        </argument>
        <argument name="dirs" xsi:type="array">
            <item name="exclude" xsi:type="array">
                <item name="captcha" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+captcha[/\\]*$</item>
                </item>
                <item name="catalog/product" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+catalog[/\\]+product[/\\]*$</item>
                </item>
                <item name="customer" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+customer[/\\]*$</item>
                </item>
                <item name="downloadable" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+downloadable[/\\]*$</item>
                </item>
                <item name="import" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+import[/\\]*$</item>
                </item>
                <item name="theme" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+theme[/\\]*$</item>
                </item>
                <item name="theme_customization" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+theme_customization[/\\]*$</item>
                </item>
                <item name="tmp" xsi:type="array">
                    <item name="regexp" xsi:type="boolean">true</item>
                    <item name="name" xsi:type="string">pub[/\\]+media[/\\]+tmp[/\\]*$</item>
                </item>
            </item>
            <item name="include" xsi:type="array"/>
        </argument>
    </arguments>
</type>

Setelah itu timpa file Magento \ Cms \ Model \ Wysiwyg \ Images \ Storage dan tambahkan kode di bawah ini untuk menghindari kesalahan yang muncul setelah pengunggahan gambar.

if (strtolower($uploader->getFileExtension()) !== 'pdf') {
  $this->resizeFile($targetPath . '/' . $uploader->getUploadedFileName(), true); 
 }

Tambahkan kode kondisi if untuk menghindari ukuran file untuk file PDF. Di bawah ini adalah fungsi di mana kita perlu menambahkan kode di atas.

public function uploadFile($targetPath, $type = null)
{
    if (!$this->isPathAllowed($targetPath, $this->getConditionsForExcludeDirs())) {
        throw new \Magento\Framework\Exception\LocalizedException(
            __('We can\'t upload the file to current folder right now. Please try another folder.')
        );
    }
    /** @var \Magento\MediaStorage\Model\File\Uploader $uploader */
    $uploader = $this->_uploaderFactory->create(['fileId' => 'image']);
    $allowed = $this->getAllowedExtensions($type);
    if ($allowed) {
        $uploader->setAllowedExtensions($allowed);
    }
    $uploader->setAllowRenameFiles(true);
    $uploader->setFilesDispersion(false);
    if (!$uploader->checkMimeType($this->getAllowedMimeTypes($type))) {
        throw new \Magento\Framework\Exception\LocalizedException(__('File validation failed.'));
    }
    $result = $uploader->save($targetPath);

    if (!$result) {
        throw new \Magento\Framework\Exception\LocalizedException(__('We can\'t upload the file right now.'));
    }

    // create thumbnail
    if (strtolower($uploader->getFileExtension()) !== 'pdf') {
        $this->resizeFile($targetPath . '/' . $uploader->getUploadedFileName(), true);
     }

    return $result;
}

Terima kasih

Bersukacitalah
sumber
0

Gunakan kode ini di di.xml berfungsi dengan baik

application / zip application / pdf

Sureshc
sumber