idhttp调用asp上传文件提示500 internal server error
html
<html>
<body>
<center>
<form name="FORM" action="upload.asp" method="post">
<input type="submit" name="submit" value="OK">
<input type="file" name="file1" style="width:400" value="">
</form>
</center>
</body>
</html>
upload.asp
<%
Function GetFileName(ByVal strFile)
If strFile <> "" Then
GetFileName = mid(strFile,InStrRev(strFile, "\")+1)
response.write (GetFileName)
Else
GetFileName = ""
End If
End function
strFileName = Request.Form("file1")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2
objStream.Close
%>
button click
procedure TForm1.btn1Click(Sender: TObject);
var
PostStream: TIdMultiPartFormDataStream;
ResponseStream: TStringStream;
sURL,sFilename: string;
begin
if dlgopen1.Execute then
sFilename:=dlgopen1.FileName;
showmessage(sFilename);
sURL:= 'http://192.168.16.7/upload.asp';
PostStream:= TIdMultiPartFormDataStream.Create;
ResponseStream := TStringStream.Create('');
try
{ PostStream.AddFormField('usr', AValues.Values['usr']);//等同于html中的<input type="text" value="">
PostStream.AddFormField('grp', AValues.Values['grp']); }
// showmessage(GetMIMETypeFromFile(sfilename));
poststream.AddFormField('file1',sfilename );
PostStream.AddFile('file1',sfilename,GetMIMETypeFromFile(sfilename));//类似html中的<input type="file" value="">
IdHTTP1.Request.ContentType := PostStream.RequestContentType;
IdHTTP1.Post(sURL, PostStream,ResponseStream);
finally
mmo1.Lines.Append(ResponseStream.DataString) ;
ResponseStream.Free;
PostStream.Free;
end;
end;