Striped Fish2 Posted December 24, 2011 Share Posted December 24, 2011 I am trying to make an admin panel for my game that will let you upload files directly to the game so that they can be used in the code: However I keep getting a 500 internal server error, and it won't tell me what the error is (I had this problem with godaddy before they don't give the error code, I spent months following forum posts from people there and couldn't get it working) So I don't know what is wrong here is my code: imageuploader.asp (A snippet from the form page) <%If Admin="Yes" thenresponse.write "<html><head><title>Image Uploader</title></head>"response.write "<body>"response.write "<form method=""POST"" enctype=""multipart/form-data"" action=""uploadfile.asp"">"response.write "<h1>DragonCraft: Image Uploader</h2><table border=0>"response.write "<tr><td><b>Select a file to upload:</b><br><INPUT TYPE=""FILE"" SIZE=""50"" NAME=""FILE1""> <INPUT TYPE=SUBMIT VALUE=""Upload!""></td></tr>"response.write "<tr><td><b>Image Type:</b><br />"response.write "Portrait :<INPUT TYPE=""RADIO"" NAME=""ImageType"" value=""Portrait"" checked><br />"response.write "Icon :<INPUT TYPE=""RADIO"" NAME=""ImageType"" value=""Icon"">"response.write "</td></tr>"response.write "</TABLE></FORM></BODY></HTML>"Elseresponse.write "Access Denied"End If%> Uploadfile.asp (processes request) <!-- #include file="../Includes/upload.asp" --><%'NOTE - YOU MUST HAVE VBSCRIPT v5.0 INSTALLED ON YOUR WEB SERVER' FOR THIS LIBRARY TO FUNCTION CORRECTLY. YOU CAN OBTAIN IT' FREE FROM MICROSOFT WHEN YOU INSTALL INTERNET EXPLORER 5.0' OR LATER.' Create the FileUploaderDim Uploader, FileSet Uploader = New FileUploader' This starts the upload processUploader.Upload()'******************************************' Use [FileUploader object].Form to access' additional form variables submitted with' the file upload(s). (used below)'******************************************' Check if any files were uploadedIf Uploader.Files.Count = 0 Then Response.Write "File(s) not uploaded."Else ' Loop through the uploaded files For Each File In Uploader.Files.Items ' Check where the user wants to save the file If Uploader.Form("ImageType") = "Icon" Then Directory = "D:\Hosting\5230803\html\DragonCraft\Images\Icons\" ElseIf Uploader.Form("ImageType") = "Portrait" Directory = "D:\Hosting\5230803\html\DragonCraft\Images\Portraits\" End If ' Save the file File.SaveToDisk(Directory) ' Output the file details to the browser Response.Write "File Uploaded: " & File.FileName & "<br>" Response.Write "Size: " & File.FileSize & " bytes<br>" Response.Write "Type: " & File.ContentType & "<br><br>" NextEnd If%> Upload.asp (Class file) <%'***************************************' File: Upload.asp' Author: Jacob "Beezle" Gilley' Email: avis7@airmail.net' Date: 12/07/2000' Comments: The code for the Upload, CByteString,' CWideString subroutines was originally' written by Philippe Collignon...or so' he claims. Also, I am not responsible' for any ill effects this script may' cause and provide this script "AS IS".' Enjoy!'****************************************Class FileUploader Public Files Private mcolFormElem Private Sub Class_Initialize() Set Files = Server.CreateObject("Scripting.Dictionary") Set mcolFormElem = Server.CreateObject("Scripting.Dictionary") End Sub Private Sub Class_Terminate() If IsObject(Files) Then Files.RemoveAll() Set Files = Nothing End If If IsObject(mcolFormElem) Then mcolFormElem.RemoveAll() Set mcolFormElem = Nothing End If End Sub Public Property Get Form(sIndex) Form = "" If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex)) End Property Public Default Sub Upload() Dim biData, sInputName Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos Dim nPosFile, nPosBound biData = Request.BinaryRead(Request.TotalBytes) nPosBegin = 1 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13))) If (nPosEnd-nPosBegin) <= 0 Then Exit Sub vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin) nDataBoundPos = InstrB(1, biData, vDataBounds) Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--")) nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition")) nPos = InstrB(nPos, biData, CByteString("name=")) nPosBegin = nPos + 6 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34))) sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename=")) nPosBound = InstrB(nPosEnd, biData, vDataBounds) If nPosFile <> 0 And nPosFile < nPosBound Then Dim oUploadFile, sFileName Set oUploadFile = New UploadedFile nPosBegin = nPosFile + 10 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34))) sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\")) nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:")) nPosBegin = nPos + 14 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13))) oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) nPosBegin = nPosEnd+4 nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2 oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin) If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile Else nPos = InstrB(nPos, biData, CByteString(Chr(13))) nPosBegin = nPos + 4 nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2 If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) End If nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds) Loop End Sub 'String to byte string conversion Private Function CByteString(sString) Dim nIndex For nIndex = 1 to Len(sString) CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1))) Next End Function 'Byte string to string conversion Private Function CWideString(bsString) Dim nIndex CWideString ="" For nIndex = 1 to LenB(bsString) CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) Next End FunctionEnd ClassClass UploadedFile Public ContentType Public FileName Public FileData Public Property Get FileSize() FileSize = LenB(FileData) End Property Public Sub SaveToDisk(sPath) Dim oFS, oFile Dim nIndex If sPath = "" Or FileName = "" Then Exit Sub If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\" Set oFS = Server.CreateObject("Scripting.FileSystemObject") If Not oFS.FolderExists(sPath) Then Exit Sub Set oFile = oFS.CreateTextFile(sPath & FileName, True) For nIndex = 1 to LenB(FileData) oFile.Write Chr(AscB(MidB(FileData,nIndex,1))) Next oFile.Close End Sub Public Sub SaveToDatabase(ByRef oField) If LenB(FileData) = 0 Then Exit Sub If IsObject(oField) Then oField.AppendChunk FileData End If End SubEnd Class%> The class file was made by somebody at asp101.comWhat's wrong with my code? TIA Link to comment Share on other sites More sharing options...
justsomeguy Posted January 3, 2012 Share Posted January 3, 2012 You'll need to get the error message, contact GoDaddy if you need to and figure out what needs to happen in order for the errors to be displayed or logged on the server where you can get to them. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.