Jag har en upload-funktion som fungerar utmärkt lokalt. Kan det ha med rättigheter på webb-hotellet att göra? Är du säker på att du inte hårdkodat en sökväg i projektet? Det Menar du Projekt Folder då eller? Källkoden är ju inkompilerad i en dll, det enda som skickas med är lite debuggningsinfo. Den är hårdkodad per automatik och påverkar inte exekveringen a) Rättighetsfel Det blir kanske fel forum nu men här är en bit av koden.... Dim m_strFolderName As String = "C:\nisse\upload\" är felet. Du har inte rättigheter att skriva till denna mapp. Hårdkoda aldrig in sökvägar på det här sättet. Skriv istället typ Server.MapPath("/") & "upload/" så hamnar du i DIN rotmapp/upload Jag gjorde en vanlig enkel upload-funktion utan storleksändring, då funkade det helt plötsligt. Fattar ingenting nu?? Det känns som om servern letar efter den uppladdade filen hos sig själv. Ex: Laddar jag upp en bild som ligger lokalt hos mig i c:\bilder\bild.jpg så verkar det som servern letar efter c:\bilder\bild.jpg lokalt hos sig där den inte finns. Är jag helt ute och famlar? Precis. Saken är att bilden finns ju inte ens sparad på servern, den finns i en variabel. Därför kan du inte ladda någon bild ifrån disken på servern. Antingen får du skicka med bilden som variabel eller se till att spara den först Ok, låter vettigt. Jag gör ett litet test och återkommer. Oskar! Jag gjorde som du föreslog, sparade bilden direkt, för att sedan göra om den. Detta fungerade utmärkt. Tack för hjälpen!Projektet fungerar lokalt men inte på annan server.
När jag försöker köra upload-funktionen på en annan webserver så får jag felmeddelandet:
System.IO.FileNotFoundException: D:\Nisse.jpg at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement) at System.Drawing.Image.FromFile(String filename) at popo.se.UploadBild.SkapaThumbnail(Object m_strFileName) in C:\Inetpub\wwwroot\Nisse\Admin\UploadBild.aspx.vb:line 166
Varför står den lokala sökvägen: C:\Inetpub\wwwroot\Nisse\Admin\UploadBild.aspx.vb:line 166
med längst ner, då sidan inte ens ligger i den mappen på den aktuella servern utan verkar hänvisa till sökvägen i mitt lokala projekt??
Är det något jag måste göra i VS innan jag kan lägga upp sidan på en annan sever?Sv: Projektet fungerar lokalt men inte på annan server.
Sv:Projektet fungerar lokalt men inte på annan server.
Sv: Projektet fungerar lokalt men inte på annan server.
Där står det http://localhost/xxxxx.xx/
Det är väl rätt?Sv:Projektet fungerar lokalt men inte på annan server.
Sv:Projektet fungerar lokalt men inte på annan server.
b) Felaktig sökväg på minste ett ställe
Kan du skicka källkoden till skrivning resp. läsning av bilden som inte finns?Sv: Projektet fungerar lokalt men inte på annan server.
'Variabel som lagrar filnamnet
Dim m_strFileName As String
'Variabel som bestämmer var filerna skall hamna
Dim m_strFolderName As String = "C:\nisse\upload\"
'Variabel soim lagrar filen
Dim m_objFile As HttpPostedFile
Dim strOnlyFilename As String
'Variabel som används i loopen
Dim i As Integer
Sub UploadMultipleFiles(ByVal sender As Object, ByVal e As System.EventArgs)
'Loppa igenom filerna
For i = 0 To Request.Files.Count - 1
'Få fram HttpPostedFile
m_objFile = Request.Files(i)
m_strFileName = m_objFile.FileName
If Not (m_objFile Is Nothing Or m_objFile.FileName = "" Or m_objFile.ContentLength < 1) Then
'Få fram namnet på filen
m_strFileName = m_objFile.FileName
strOnlyFilename = Path.GetFileName(m_strFileName)
End If
Dim contenttype As String = m_objFile.ContentType
If InStr("image/gif;image/pjpeg", contenttype, CompareMethod.Binary) > 0 Then
FixaOriginal(m_strFileName)
ElseIf InStr("image/gif;image/pjpeg", contenttype, CompareMethod.Binary) > 0 Then
ResultMsg.Text = "Någon av filerna var inte en .gif- eller .jpg-bild. Försök igen."
End If
Next
End Sub
Public Sub FixaOriginal(ByVal m_strFileName As String)
'Om originalbilden är större än vad den får vara sparas den om i angiven storlek.
Try
' Orginalbilden
Dim objOrginal As System.Drawing.Image
objOrginal = objOrginal.FromFile(m_strFileName)
Dim intMaxBredd As Integer = 700
Dim intMaxHojd As Integer = 550
Dim intNyaHojd, intNyBredd As Integer
'Sparar bilden direkt om den är mindre än den tillåtna maxstorleken
If objOrginal.Height <= intMaxHojd And objOrginal.Width <= intMaxBredd Then
m_objFile.SaveAs(m_strFolderName & strOnlyFilename)
End If
' Kolla om den måste förminskas
If objOrginal.Width > intMaxBredd Or objOrginal.Height > intMaxHojd Then
If objOrginal.Width >= objOrginal.Height And objOrginal.Width > intMaxBredd Then
intNyBredd = intMaxBredd
intNyaHojd = (objOrginal.Height / objOrginal.Width) * intMaxBredd
Else
intNyaHojd = intMaxHojd
intNyBredd = (objOrginal.Width / objOrginal.Height) * intMaxHojd
End If
' Skapa bitmapp med rätt storlek
Dim objBitmap As Bitmap = New Bitmap(intNyBredd, intNyaHojd)
' Skapa graphic object
Dim objGraphics As Graphics = Graphics.FromImage(objBitmap)
objGraphics.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
objGraphics.DrawImage(objOrginal, 0, 0, intNyBredd, intNyaHojd)
objOrginal.Dispose()
' Spara den nya bilden
objBitmap.Save(m_strFolderName & strOnlyFilename, Imaging.ImageFormat.Jpeg)
'Response.Write(m_strFolderName & strOnlyFilename)
Else
objOrginal.Dispose()
End If
Catch errorVariable As Exception
ResultMsg.Text = errorVariable.ToString()
End Try
End Sub
Sv:Projektet fungerar lokalt men inte på annan server.
Sv: Projektet fungerar lokalt men inte på annan server.
Sv:Projektet fungerar lokalt men inte på annan server.
Sv: Projektet fungerar lokalt men inte på annan server.
Sv:Projektet fungerar lokalt men inte på annan server.
Ps! Det hade förövrigt inget att göra med om sökvägen till upload-katalogen var hårdkodad eller virtuell. Jag använde den hårdkodade modellen.
//Per