"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل مشكلات الصور التالفة عند تحويل URI للبيانات إلى ملف في PHP؟

كيفية حل مشكلات الصور التالفة عند تحويل URI للبيانات إلى ملف في PHP؟

تم النشر بتاريخ 2024-11-09
تصفح:310

How to Resolve Corrupted Image Issues When Converting Data-URI to File in PHP?

PHP Data-URI إلى الملف: حل مشكلات الصور التالفة

الحفاظ على سلامة بيانات الصورة أثناء التحويل من Data-URI إلى تنسيق الملف أمر بالغ الأهمية. أحد التحديات الشائعة التي تتم مواجهتها أثناء استخدام وظيفة file_put_contents في PHP لحفظ البيانات من استدعاء JavaScript Canvas.toDataURL() هو تلف الصورة الناتجة. تنبع المشكلة من وجود مسافات بيضاء في Data-URI.

توفر وثائق PHP حلاً مباشرًا لهذه المشكلة:

$encodedData = str_replace(' ', ' ', $encodedData);
$decodedData = base64_decode($encodedData);

من خلال استبدال المسافات البيضاء بعلامات الجمع، تتم إعادة بناء البيانات التي تم فك تشفيرها بشكل صحيح، مما يضمن عدم تلف ملف الصورة.

في حالتك المحددة، يمكنك كانوا يعملون باستخدام Data-URI الذي يحتوي على صورة PNG. إليك كيفية دمج الحل في التعليمات البرمجية الخاصة بك:

// Get the base64-encoded URI data from JavaScript
$data = $_POST['logoImage'];

// Remove the leading "data:image/png;base64," part
$uri = substr($data, strpos($data, ',')   1);

// Replace any whitespace with a plus
$uri = str_replace(' ', ' ', $uri);

// Decode the base64-encoded data
$decodedData = base64_decode($uri);

// Save the decoded data to a file with the specified name
file_put_contents($_POST['logoFilename'], $decodedData);

باتباع هذا الأسلوب، يمكنك حفظ Data-URI بنجاح كملف PNG غير تالف.

بيان الافراج أعيد طبع هذه المقالة على: 1729644498 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3