Saya memiliki potongan di file PHP fungsi saya yang memungkinkan saya untuk mengunggah file SVG. Sejak memutakhirkan ke versi WP terbaru hari ini, saya tidak bisa lagi mengunggah svgs. Saya juga mencoba cuplikan kode kedua dari situs web trik CSS dan itu juga tidak berhasil.
Adakah yang tahu a) apa yang menyebabkan ini dengan pembaruan terakhir dan b) Adakah yang tahu cara mengatasinya.
Berikut adalah kode yang biasanya saya gunakan:
function svg_mime_types( $mimes ) {
mimes['svg'] = 'image/svg+xml';
return $mimes;}
add_filter( 'upload_mimes', 'svg_mime_types' );
Terimakasih banyak
Paul.
define( 'ALLOW_UNFILTERED_UPLOADS', true );
kewp-config.php
. Ini tidak aman untuk produksi.'svg' === strtolower($filetype['ext']);
rentang terlalu luas kecuali memeriksa khusus untuk dan memperkenalkan lebih banyak pekerjaan jika tidak diperlukan pekerjaan (kebanyakan) atau file tersebut bukan dari tipe svg ...Sepertinya ini terkait dengan tiket ini https://core.trac.wordpress.org/ticket/39552 , sepertinya ada sesuatu yang rusak di 4.7.1
sumber
Sepertinya tidak ada yang baru saja bekerja dengan apa yang ada dan itu sangat buruk jadi inilah cara saya menangani ...
Sejarah / Latar Belakang
Saya membuat pengunggah SVG pada tahun 2015 berdasarkan artikel Trik-CSS melihat apa itu. Saya juga dapat kisi-kisi untuk pratinjau gambar, dan menggunakan beberapa perbaikan lainnya. Plugin sederhana (plugin jenis file IMO harus sederhana)
Larutan
Ada beberapa perubahan untuk 4.7. PITA yang sebenarnya adalah bahwa untuk
image/
jenis pantomim WP sekarang menggunakan GD pada gambar. Untuk memotong ini saya mengatursvg
ekstensi untuk digunakanapplication/svg+xml
sehingga GD tidak akan mengacaukan file.Pembaruan: pada 4.7.2 beberapa percikan terang pecah juga dalam beberapa kasus
Kemudian nanti melalui kait kami hotwire kembali ke
image/svg+xml
. Ini sama dengan yang digunakan pada jawaban lain, tetapi kami pertama-tama menguncinya ke kasus khusus kami untuk menghilangkan efek (apakah ini file SVG); kita bisa mengandalkan membaca$data['ext']
(harus lebih murah daripada fungsinya untuk mendapatkan info file karena hanya satu perbandingan dan satu akses array / hash).Pembaruan: pada 4.7.2
$data['ext']
tidak selalu diatur, jadi kami sekarang jika panjangnya <1 mengekstrak ekstensi (berpotensi tidak aman) dari nama file yang digunakanstrtolower(end(explode('.', $filename)))
. Alasan saya benar-benar berjuang menggunakan FileInfo adalah bahwa pada dasarnya mengandalkan ekstensi PHP terlalu buram dan tidak akan selalu bekerja untuk semua orang (terutama yang tidak mengkompilasi tanpa atau tanpa akses untuk mengaktifkan ekstensi jika tidak ada di sana). Saya ingin sesuatu yang berfungsi sebagai pengganti ekstensi. Ini bukan lagi masalah memiliki informasi yang benar sehingga bagi mereka yang mempercayai hasil dariFileInfo
dan memiliki ekstensi (saya percaya itu default di 5.6+) itu harus berfungsi. Juga karena ini adalah plugin, itu bukan memodifikasi inti Anda dapat mematikan kode ini atau membatalkan registrasi kail.https://github.com/Lewiscowles1986/WordPressSVGPlugin
Lihat
Penanganan lainnya
Mengizinkan pengunggahan tanpa filter adalah solusi yang mengerikan karena seperti yang dikatakan orang lain menghubungkan ke utas ini orang dapat mengunggah file php melalui pengunggah media (itu buruk dan jika Anda melakukannya, Anda harus berhenti dan berpikir!)
Memaksa setiap file melalui fungsi apa pun tanpa pemeriksaan (Ironisnya jika Anda memiliki
image/
tipe mime, Anda tidak bisa hanya memiliki pemeriksaan ekst yang sederhana). Ini memiliki potensi untuk menciptakan efek jangkauan yang jauh lebih luas untuk memecahkan masalah yang relatif niche dan memperkenalkan lebih banyak pekerjaan secara keseluruhan (peringatan plugin saya juga memperkenalkan lebih banyak pekerjaan bagi pengguna admin untuk membuat media admin UI bekerja)Jika kita meninggalkan mime sebagai aplikasi / svg + xml dan cukup memfilter jenis mime gambar akan diunggah tetapi AFAIK akan memerlukan perbaikan untuk digunakan sebagai gambar unggulan dll. Ada lebih banyak pekerjaan yang harus dilakukan untuk memastikan pengalaman universal SVG jadi saya memilih untuk memilih pertempuran dengan hati-hati.
Semoga ini membantu.
sumber