我想同时插入记录和上传文件,现在我正在使用
FreeASPUpload脚本.当我提交表单时,它返回此错误
Cannot use the generic Request collection after calling BinaryRead
<% option explicit Response.Expires = -1 Server.ScriptTimeout = 600 Session.CodePage = 65001 %> <!-- #include file="UploadClass.asp" --> <% Dim uploadsDirVar uploadsDirVar = server.MapPath("Files_Uploaded") function OutputForm() %> <form name="frmSend" method="POST" enctype="multipart/form-data" accept-charset="utf-8" action="form.asp" onSubmit="return onSubmitForm();"> <input type="hidden" name="ApplicationForm" value="Insert" /> Name: <input type="text" name="name_insert" value="" size="30" /> <B>File names:</B><br> File 1: <input name="attach1" type="file" size=35><br> <br> <input style="margin-top:4" type="submit" value="Submit"> </form> <% end function function TestEnvironment() Dim fso,fileName,testFile,streamTest TestEnvironment = "" Set fso = Server.CreateObject("Scripting.FileSystemObject") if not fso.FolderExists(uploadsDirVar) then TestEnvironment = "<B>Folder " & uploadsDirVar & " does not exist.</B><br>The value of your uploadsDirVar is incorrect. Open uploadTester.asp in an editor and change the value of uploadsDirVar to the pathname of a directory with write permissions." exit function end if fileName = uploadsDirVar & "\test.txt" on error resume next Set testFile = fso.CreateTextFile(fileName,true) If Err.Number<>0 then TestEnvironment = "<B>Folder " & uploadsDirVar & " does not have write permissions.</B><br>The value of your uploadsDirVar is incorrect. Open uploadTester.asp in an editor and change the value of uploadsDirVar to the pathname of a directory with write permissions." exit function end if Err.Clear testFile.Close fso.DeleteFile(fileName) If Err.Number<>0 then TestEnvironment = "<B>Folder " & uploadsDirVar & " does not have delete permissions</B>,although it does have write permissions.<br>Change the permissions for IUSR_<I>computername</I> on this folder." exit function end if Err.Clear Set streamTest = Server.CreateObject("ADODB.Stream") If Err.Number<>0 then TestEnvironment = "<B>The ADODB object <I>Stream</I> is not available in your server.</B><br>Check the Requirements page for information about upgrading your ADODB libraries." exit function end if Set streamTest = Nothing end function function SaveFiles Dim Upload,fileSize,ks,i,fileKey Set Upload = New FreeASPUpload Upload.Save(uploadsDirVar) ' If something fails inside the script,but the exception is handled If Err.Number<>0 then Exit function SaveFiles = "" ks = Upload.UploadedFiles.keys if (UBound(ks) <> -1) then SaveFiles = "<B>Files uploaded:</B> " for each fileKey in Upload.UploadedFiles.keys SaveFiles = SaveFiles & Upload.UploadedFiles(fileKey).FileName & " (" & Upload.UploadedFiles(fileKey).Length & "B) " next else SaveFiles = "No file selected for upload or the file name specified in the upload form does not correspond to a valid file in the system." end if SaveFiles = SaveFiles & "<br>Enter a number = " & Upload.Form("enter_a_number") & "<br>" SaveFiles = SaveFiles & "CheckBox values = " & Upload.Form("checkBox_values") & "<br>" SaveFiles = SaveFiles & "List values = " & Upload.Form("list_values") & "<br>" SaveFiles = SaveFiles & "Text area = " & Upload.Form("t_area") & "<br>" end function %> <HTML> <HEAD> <TITLE>Test Free ASP Upload 2.0</TITLE> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> BODY {background-color: white;font-family:arial; font-size:12} </style> <script> function onSubmitForm() { var formDOMObj = document.frmSend; if (formDOMObj.attach1.value == "") alert("Please press the Browse button and pick a file.") else return true; return false; } </script> </HEAD> <BODY> <br><br> <div style="border-bottom: #A91905 2px solid;font-size:16">Upload files to your server</div> <% Dim diagnostics if Request.ServerVariables("REQUEST_METHOD") <> "POST" then diagnostics = TestEnvironment() if diagnostics<>"" then response.write "<div style=""margin-left:20; margin-top:30; margin-right:30; margin-bottom:30;"">" response.write diagnostics response.write "<p>After you correct this problem,reload the page." response.write "</div>" else response.write "<div style=""margin-left:150"">" OutputForm() response.write "</div>" end if else response.write "<div style=""margin-left:150"">" OutputForm() response.write SaveFiles() response.write "<br><br></div>" end if %> </BODY> </HTML> <!-- #include file="ADOVBS.inc" --> <% '======================================================================================= ' CONNECT DATABASE '======================================================================================= Dim objConn,objRs Set objConn = CreateObject("ADODB.Connection") Set objRs = CreateObject("ADODB.Recordset") objConn.open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.MapPath("db/Job_database.mdb") &";Mode=ReadWrite|Share Deny None;Persist Security Info=False" If Request("ApplicationForm") = "Insert" Then Set InsCom=Server.CreateObject("ADODB.Command") InsCom.ActiveConnection=objConn InsName = Trim(request("name_insert")) InsName = replace(InsName,"'","''") InsCom.CommandText = "Insert into applications(aname)Values(?)" InsCom.Parameters.Append InsCom.CreateParameter("@name_insert",adVarChar,adParamInput,255,InsName) InsCom.Execute End If %>
我一直在寻找这个问题,但无法使其发挥作用.虽然我发现我必须使用FreeASPUpload提供的Form Collection.因此,我改变了
If Request("ApplicationForm") = "Insert" Then
对此
If Upload.Form("ApplicationForm") = "Insert" Then
If Request.QueryString("ApplicationForm") = "Insert" Then
请帮我解决这个问题..谢谢