Forum > ASP.NET 3.x > Generella frågor
Jag har en sida där man kan ladda upp bilder. Till detta har jag ett serverside script som skapar thumbnails genom att skapa en ny bitmap av den uppladdade filen.
Det verkar som om det finns en gräns för hur stora bilder man kan ladda upp. Om jag försöker ladda upp bild tagen med min 12 megapx så kastas jag till en felsida.
Nån som känner till om det finns en gräns för detta?
Är det script timeout du får? om servern har en timeout så är det den tid den har på sig att köra ett skript om den är lägre än vad den behöver för att behandla bilderna så kommer det bli en timeout.
Inte vad jag vet. Visa din nuvarande kod, om du inte skrivit den själv kanske det finns nåt värde hårdkodat?
Jag har ingen egen felsida så jag vet inte vilket fel som uppstår. Jag har testat med Try -Catch på flera sätt men inget napp.
Oftast får jag "vanliga felsidan" men ibland får jag "Anslutningsfel" lokalt får jag alltid "Anslutningsfel"
Så här ser scriptet ut
Private Function sparabild(ByVal bld As FileUpload, ByVal fsv As String, ByVal thsv As String) As Boolean
' bld är id på fileuploadkontrollen, fsv och thsv är den relativa sökvägen som bilden resp tummen ska ha (sparas i en databas)
Dim callb As Image.GetThumbnailImageAbort
Dim nb As New Bitmap(bld.PostedFile.InputStream)
Dim oh As Integer = nb.Height
Dim ow As Integer = nb.Width
Dim nthz As Size
'Skakar om bilden för att tabort ev inbäddad thumbnail
nb.RotateFlip(RotateFlipType.Rotate180FlipNone)
nb.RotateFlip(RotateFlipType.Rotate180FlipNone)
'resizar större bilder till max 1200 * 800
If ow > 1200 Or oh > 800 Then
If oh > ow Then
nthz = New Size(ow / oh * 800, 800)
Else
nthz = New Size(1200, oh / ow * 1200)
If nthz.Height > 800 Then
nthz = New Size(ow / oh * 800, 800)
End If
End If
nb = nb.GetThumbnailImage(nthz.Width, nthz.Height, callb, IntPtr.Zero)
nb.Save(Server.MapPath(fsv))
Else
bld.SaveAs(Server.MapPath(fsv))
End If
'Skapar en tumme
If oh > ow Then
nthz = New Size(ow / oh * 60, 60)
Else
nthz = New Size(90, oh / ow * 90)
If nthz.Height > 60 Then
nthz = New Size(ow / oh * 60, 60)
End If
End If
nb = nb.GetThumbnailImage(nthz.Width, nthz.Height, callb, IntPtr.Zero)
nb.Save(Server.MapPath(thsv))
nb.Dispose()
bld.Dispose()
End Function
Sätt en breakpoint och stega i din kod och berätta var den krashar när den väl krashar, och då får du även ett felmeddelande.
Det finns faktiskt en gräns för FileUpload-kontrollen. Default är 4 Mb.
Denna kan ändras genom att lägga till önskad maxstorlek inom <system.web> i Web.config:
<
httpRuntime maxRequestLength="8000"
/>