说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何运用IDHttp上传XML文件到Web服务器上

编辑:说三道四文库 发布时间:2018-06-23 11:58
HTML文档下载 WORD文档下载 PDF文档下载
我查了很多资料,虽然这方面的资料不少,但是还是没有实现,总是出现HTTP/1.1   500   Internal   Server   Error的错误,不知道是怎么回事,请高手赐教!最好能发源代码我,包括delphi和web服务器接收的ASP代码,谢谢先,我的QQ:411622499  EMail:ccnuitbxl@126.com

我的代码:
procedure TForm1.Button2Click(Sender: TObject);
var
  ResponseStream: TMemoryStream;
  MultiPartFormDataStream: TMsMultiPartFormDataStream;
  Idhttp1:TIdHTTP;
begin
  Idhttp1:=TIdHTTP.Create;
  MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;
  ResponseStream := TMemoryStream.Create;
  try
    IdHttp1.Request.ContentType := MultiPartFormDataStream.RequestContentType;
    MultiPartFormDataStream.AddFormField('PersonName', edtPersonName.Text);
    MultiPartFormDataStream.AddFormField('Description', edtDescription.Text);
    MultiPartFormDataStream.AddFile(edtFile.Name, edtFile.Text, edtMIMEType.Text);
    MultiPartFormDataStream.PrepareStreamForDispatch;
    MultiPartFormDataStream.Position := 0;
    IdHTTP1.Post(edtHost.Text, MultiPartFormDataStream, ResponseStream);
  finally
    MultiPartFormDataStream.Free;
    ResponseStream.Free;
  end;
end;

<%OPTION EXPLICIT%>
<!--#include FILE="upfile_class.asp"-->
<%
dim upfile,formPath,ServerPath,FSPath,formName,FileName,oFile
set upfile=new upfile_class   '建立上传对象
upfile.GetData(10240000)      '取得上传数据,限制最大上传10M
%>
<html>
<head>
<title>文件上传</title>
<style type="text/css">
<!--.p9{ font-size:9pt;font-family:宋体}-->
</style>
<meta http-equiv="Content-Type" content="text/XML; charset=gb2312">
</head>
<body leftmargin="20" topmargin="20" class="p9">
<p class="tx1"><font color="#0000FF" size="4"><%=upfile.Version%></font></p>
<hr size=1 noshadow width=300 align=left>
<%if upfile.err>0 then     '如果出错
select case upfile.err
case 1 Response.Write "你没有上传数据呀???是不是搞错了??"
case 2 Response.Write "你上传的文件超出我们的限制,最大10M"
end select
else
%>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" class="p9" style="border-collapse:collapse">
    <tr bgcolor="#CCCCCC">   
        <td height="25" valign='middle'>本地文件</td>
        <td valign='middle'>大小(字节)</td>
        <td valign='middle'>上传到</td>
    </tr>     
<%
FSPath=GetFilePath(Server.mappath("upfile.asp"),"\")  '取得当前文件在服务器路径
ServerPath=GetFilePath(Request.ServerVariables("HTTP_REFERER"),"/")  '取得在网站上的位置
for each formName in upfile.file   '列出所有上传了的文件
      set oFile=upfile.file(formname)
      FileName=upfile.form(formName) '取得文本域的值
      if not FileName>"" then FileName=oFile.filename  '如果没有输入新的文件名,就用原来的文件名
      oFile.SaveToFile(FSPath&FileName)       '保存文件
  %>
<tr>   
        <td height="20" valign='middle'><%=oFile.FilePath&oFile.FileName%></td>
        <td valign='middle'><%=oFile.filesize%></td>
        <td valign='middle'><A HREF="<%=serverpath&FileName%>"><%=FileName%></A></td>
</tr>
<% set oFile=nothing
   next
%>
    <tr>   
        <td colspan="3" height="25" valign='middle'>一共上传了<%=upfile.file.Count%>个文件</td>
    </tr>
<%
end if
set upfile=nothing     '删除此对象
%>
</body>
</html>

<%
function GetFilePath(FullPath,str)
    If FullPath<>"" Then
        GetFilePath=left(FullPath,InStrRev(FullPath,str))
        Else
        GetFilePath=""
    End If
End function
%>
500错误明显就是asp文件有错嘛

内部服务器错误
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘