【发布时间】:2019-01-15 17:30:45
【问题描述】:
我的任务是向使用 Classic ASP 的基于 Web 的应用程序添加文件上传。不幸的是,我不被允许使用任何其他技术,并且被告知这是它所建议的任何东西,但 ASP 在这种情况下无济于事。
在提交带有一些输入字段和一个文件字段的简单表单时调用带有 $.ajax 的表单 POST,该表单指向通过 request.form 处理记录集插入的经典 ASP 文件。我添加了 contentType: false 希望 enctype="multipart/form-data" 但收到以下错误:
对象不支持此属性或方法:'Binary',因为我在下面发布的插入中更改了 request.form,但它也不适用于 request.form。使用 request.form 我收到此错误:[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression。
$.ajax({
type : 'POST',
url : 'manipulateData.asp?sqlType='+newdbTable+'&sqlRecordId='+recordId+'',
data : formData,
encode : true,
contentType : false,
success: function(data) {
// do something with data
},
error: function(data) {
console.log("ERROR" + JSON.stringify(data));
}
})
在经典 ASP 文件中,operatedData.asp 是一个连接字符串,它在 case 语句中被调用,下面是更经典的 ASP 文件,用于单个文件上传,如下所示。
我正在尝试实施 Shadow Wizards 解决方案,但想先尝试一下,因为我试图让事情变得简单。
cn.execute("INSERT INTO CONTENT (contentTitle, contentContent, contentDate, categoryId, userLevel) VALUES ('" & Request.Form("contentTitle") & "','" & Request.Form("contentContent") & "','" & Request.Form("contentDate") & "','" & Request.Form("categoryTitle") & "','" & Request.Form("userLevel") & "')")
' TEST FILE UPLOAD
Dim objUpload
Dim strFile, strPath
' Instantiate Upload Class '
Set objUpload = New clsUpload
strFile = objUpload.Fields("file").FileName
strPath = server.mappath("/files") & "/" & strFile
' Save the binary data to the file system '
objUpload("file").SaveAs strPath
Set objUpload = Nothing
当我已经准备好 request.form 和 request.binary 不能同时使用时,我正在尝试做的事情是否可行?如果没有,那还有什么替代方案?
【问题讨论】:
标签: ajax iis asp-classic