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?

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


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>

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>

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



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.


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


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


0

Gunakan kode ini di di.xml berfungsi dengan baik

application / zip application / pdf

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.