Script erstellt
This commit is contained in:
133
fix-upload-limits.php
Normal file
133
fix-upload-limits.php
Normal file
@@ -0,0 +1,133 @@
|
||||
<?php
|
||||
// Fix: Upload-Limits für Bild-Upload
|
||||
echo "📸 Fix: Upload-Limits für Bild-Upload\n";
|
||||
echo "===================================\n\n";
|
||||
|
||||
// 1. Aktuelle PHP-Upload-Limits prüfen
|
||||
echo "1. 🔍 Aktuelle PHP-Upload-Limits:\n";
|
||||
$limits = [
|
||||
'upload_max_filesize' => ini_get('upload_max_filesize'),
|
||||
'post_max_size' => ini_get('post_max_size'),
|
||||
'max_file_uploads' => ini_get('max_file_uploads'),
|
||||
'memory_limit' => ini_get('memory_limit'),
|
||||
'max_execution_time' => ini_get('max_execution_time'),
|
||||
'max_input_time' => ini_get('max_input_time')
|
||||
];
|
||||
|
||||
foreach ($limits as $setting => $value) {
|
||||
echo " - $setting: $value\n";
|
||||
}
|
||||
|
||||
// 2. Konvertiere zu Bytes für Vergleich
|
||||
function convertToBytes($sizeStr) {
|
||||
$sizeStr = strtolower(trim($sizeStr));
|
||||
$last = strtolower($sizeStr[strlen($sizeStr)-1]);
|
||||
$size = (int)$sizeStr;
|
||||
|
||||
switch($last) {
|
||||
case 'g': $size *= 1024;
|
||||
case 'm': $size *= 1024;
|
||||
case 'k': $size *= 1024;
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
$uploadMaxBytes = convertToBytes($limits['upload_max_filesize']);
|
||||
$postMaxBytes = convertToBytes($limits['post_max_size']);
|
||||
$requiredBytes = 10 * 1024 * 1024; // 10MB
|
||||
|
||||
echo "\n2. 📊 Größenvergleich:\n";
|
||||
echo " - Upload max filesize: " . number_format($uploadMaxBytes) . " Bytes\n";
|
||||
echo " - Post max size: " . number_format($postMaxBytes) . " Bytes\n";
|
||||
echo " - Benötigt für 10MB: " . number_format($requiredBytes) . " Bytes\n";
|
||||
|
||||
if ($uploadMaxBytes < $requiredBytes) {
|
||||
echo " ⚠️ upload_max_filesize ist zu klein für 10MB Uploads\n";
|
||||
} else {
|
||||
echo " ✅ upload_max_filesize ist ausreichend\n";
|
||||
}
|
||||
|
||||
if ($postMaxBytes < $requiredBytes) {
|
||||
echo " ⚠️ post_max_size ist zu klein für 10MB Uploads\n";
|
||||
} else {
|
||||
echo " ✅ post_max_size ist ausreichend\n";
|
||||
}
|
||||
|
||||
// 3. .htaccess für Upload-Limits erstellen
|
||||
echo "\n3. 🔧 .htaccess Upload-Limits erstellen...\n";
|
||||
$htaccessContent = "
|
||||
# Upload-Limits für Bild-Upload
|
||||
php_value upload_max_filesize 10M
|
||||
php_value post_max_size 10M
|
||||
php_value max_file_uploads 20
|
||||
php_value memory_limit 256M
|
||||
php_value max_execution_time 300
|
||||
php_value max_input_time 300
|
||||
";
|
||||
|
||||
if (file_exists('public/.htaccess')) {
|
||||
$currentHtaccess = file_get_contents('public/.htaccess');
|
||||
|
||||
// Prüfe ob Upload-Limits bereits vorhanden sind
|
||||
if (strpos($currentHtaccess, 'upload_max_filesize') === false) {
|
||||
// Füge Upload-Limits hinzu
|
||||
$newHtaccess = $currentHtaccess . "\n" . $htaccessContent;
|
||||
file_put_contents('public/.htaccess', $newHtaccess);
|
||||
echo " ✅ Upload-Limits zu .htaccess hinzugefügt\n";
|
||||
} else {
|
||||
echo " ℹ️ Upload-Limits bereits in .htaccess vorhanden\n";
|
||||
}
|
||||
} else {
|
||||
echo " ❌ public/.htaccess nicht gefunden\n";
|
||||
}
|
||||
|
||||
// 4. Test-Upload-Funktionalität
|
||||
echo "\n4. 🧪 Test Upload-Funktionalität...\n";
|
||||
|
||||
// Prüfe GD Extension
|
||||
if (extension_loaded('gd')) {
|
||||
echo " ✅ GD Extension geladen\n";
|
||||
} else {
|
||||
echo " ❌ GD Extension nicht geladen - Bildverarbeitung nicht möglich\n";
|
||||
}
|
||||
|
||||
// Prüfe Storage-Verzeichnis
|
||||
$storagePath = 'storage/app/public/nail_polishes';
|
||||
if (is_dir($storagePath)) {
|
||||
echo " ✅ Storage-Verzeichnis existiert: $storagePath\n";
|
||||
} else {
|
||||
echo " ⚠️ Storage-Verzeichnis existiert nicht: $storagePath\n";
|
||||
mkdir($storagePath, 0755, true);
|
||||
echo " ✅ Storage-Verzeichnis erstellt\n";
|
||||
}
|
||||
|
||||
// Prüfe Schreibrechte
|
||||
if (is_writable($storagePath)) {
|
||||
echo " ✅ Storage-Verzeichnis beschreibbar\n";
|
||||
} else {
|
||||
echo " ❌ Storage-Verzeichnis nicht beschreibbar\n";
|
||||
}
|
||||
|
||||
// 5. Laravel Storage Link prüfen
|
||||
echo "\n5. 🔗 Laravel Storage Link prüfen...\n";
|
||||
$publicStoragePath = 'public/storage';
|
||||
if (is_link($publicStoragePath)) {
|
||||
echo " ✅ Storage Link existiert\n";
|
||||
} else {
|
||||
echo " ⚠️ Storage Link existiert nicht\n";
|
||||
if (file_exists('public/storage')) {
|
||||
echo " ℹ️ public/storage ist ein Verzeichnis, kein Link\n";
|
||||
} else {
|
||||
echo " ℹ️ public/storage existiert nicht\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n✅ Upload-Limits Fix abgeschlossen!\n";
|
||||
echo "🔗 Testen Sie jetzt: https://neonail.vogt.de.com/create-nail-polish\n";
|
||||
echo "📝 Versuchen Sie ein Handy-Foto hochzuladen (bis 10MB)\n";
|
||||
echo "\n📋 Falls Upload immer noch fehlschlägt:\n";
|
||||
echo "- Prüfen Sie die Browser-Entwicklertools (F12) für Details\n";
|
||||
echo "- Schauen Sie in storage/logs/laravel.log für Laravel-Fehler\n";
|
||||
echo "- Prüfen Sie die Apache-Logs für Server-Fehler\n";
|
||||
?>
|
||||
Reference in New Issue
Block a user