Hangi yüklemeler başarısız oluyor?
Başarılı ve başarısız dosyanın boyutunu, türünü, istek süresini ve dönen HTTP durumunu kaydedin. Küçük dosyanın geçmesi büyük dosyanın da aynı yoldan işleneceğini kanıtlamaz. Birden fazla dosya ve form alanları toplam istek boyutunu artırır.
İstek IIS’te reddediliyorsa uygulama günlüğüne hiç ulaşmayabilir. Uygulama isteği alıp sonradan hata veriyorsa geçici dizin, hedef disk, izin veya işleme aşamasına bakın. Süre aşımı ile boyut sınırını ayrı hipotezler olarak değerlendirin.
Sınırları aynı birime çevirin
| Katman | Kontrol |
|---|---|
| IIS request filtering | maxAllowedContentLength gibi istek boyutu sınırları |
| PHP | upload_max_filesize ve post_max_size ilişkisi |
| Proxy ve uygulama | İstek gövdesi, süre ve uygulamaya özel dosya kuralları |
| Depolama | Geçici alan, hedef disk, kota ve süreç kimliğinin yazma izni |
Boyut ve süre bütçesi belirleyin
İzin verilen tek dosya boyutunu, aynı istekteki dosya sayısını ve form ek yükünü birlikte hesaplayın. Örneğin ürününüz 20 MiB dosyayı kabul edecekse toplam istek sınırını tam dosya boyutuna eşitlemek sınırdaki geçerli istekleri reddedebilir. Bu örnek bir ürün kararıdır; bütün sunucular için önerilen limit değildir.
Yavaş bağlantı, virüs taraması veya dönüştürme süresi yükleme süresinden farklıdır. Uzun süren işlem için kabul edildi yanıtı ve takip edilebilir arka plan işi tasarlamak gerekebilir. Zaman aşımını büyütmek işlem tamamlandığını garanti etmez.
Sınır testleri ve geri dönüş
- Mevcut değerleri ve kapsamlarını kaydedin; değişikliği önce test sitesinde uygulayın.
- Sınırın altında, sınırda ve üstünde dosyalarla beklenen kabul veya ret sonucunu ölçün.
- Birden fazla dosya, yavaş aktarım ve yarıda kesilen bağlantıyı deneyin; geçici dosyaların temizlendiğini kontrol edin.
- Aynı sunucudaki diğer sitelerin limitlerinin değişmediğini ve disk tüketiminin kontrol altında olduğunu doğrulayın.
Yüklemeyi kabul etmek dosyayı güvenli yapmaz
İzin verilen dosya türlerini iş ihtiyacına göre sınırlandırın. Kullanıcının verdiği dosya adını doğrudan çalıştırılabilir web yoluna dönüştürmeyin. Özel yüklemeler için yetki kontrollü indirme ve güvenli saklama tasarlayın.
Test sonucunda kullanıcıya açık bir hata mesajı gösterin; ayrıntılı sistem yollarını veya yapılandırmayı ifşa etmeyin. Disk doluluğu, reddedilen yüklemeler ve başarısız arka plan işlemleri ayrı izlenebilir sonuçlar olmalıdır.
Paylaşılan sunucuda müşteri başına depolama sınırını da değerlendirin. Tek kullanıcının geçerli yüklemeleri bütün sitelerin disk alanını tüketmemelidir.
Sık sorulan sorular
PHP limitini artırdım, neden hâlâ hata var?
IIS, proxy veya uygulama daha erken reddediyor olabilir. İsteğin ulaştığı son katmanı durum ve günlüklerle belirleyin.
post_max_size ile dosya boyutu aynı mı olmalı?
Toplam POST verisi dosyanın yanında form ve çok parçalı aktarım ek yükünü de içerir. Dosya ve toplam istek bütçesini birlikte planlayın.
Limitleri sınırsız yapmak doğru mu?
İş ihtiyacına göre sınır belirleyin. Sınırsız kabul; disk, bellek ve işleme kaynakları üzerindeki yükü denetlemeyi zorlaştırır.
Yükleme tamamlandıysa dönüştürme de tamamlandı mı?
Hayır. Aktarım, dosyayı kaydetme ve arka planda işleme ayrı aşamalar olabilir. Kullanıcıya hangi aşamanın tamamlandığını doğru gösterin.