经过与Indy的代码对比还是要提问下,请unsigned大侠指点下!asp.net程序:<input type="upfile" id="MyFile" runat="server" />
...
private void Page_Load(object sender, System.EventArgs e)
{
if(MyFile.PostedFile!=null)
{
string strSaveDir = "./upload/";
string strName = MyFile.PostedFile.FileName;
int intPath = strName.LastIndexOf("\\");
string strNewName = strName.Substring(intPath);
MyFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNewName));
}
}
在Indy中可以进行:
MutPartForm := TIdMultiPartFormDataStream.Create;
...IdHTTP.Request.ContentType := MutPartForm.RequestContentType;
MutPartForm.AddFile('upfile', fileName, 'jpg');
MutPartForm.Position := 0;
aIdHTTP.Post(URL, MutPartForm,ResponseStream);
...
问题:
如何运用ICS的THttpCli上传文件?非常感激!
...
private void Page_Load(object sender, System.EventArgs e)
{
if(MyFile.PostedFile!=null)
{
string strSaveDir = "./upload/";
string strName = MyFile.PostedFile.FileName;
int intPath = strName.LastIndexOf("\\");
string strNewName = strName.Substring(intPath);
MyFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNewName));
}
}
在Indy中可以进行:
MutPartForm := TIdMultiPartFormDataStream.Create;
...IdHTTP.Request.ContentType := MutPartForm.RequestContentType;
MutPartForm.AddFile('upfile', fileName, 'jpg');
MutPartForm.Position := 0;
aIdHTTP.Post(URL, MutPartForm,ResponseStream);
...
问题:
如何运用ICS的THttpCli上传文件?非常感激!
解决方案 »
- 超奇怪问题:数据集append后提示Dataset not in edit or insert mode
- 为什么DBLookupComboBox上显示的内容不可改变了?
- 怎样实现如XP左下边的‘文件和文件夹任务’‘其它位置’‘详细信息’那样可以伸展的功能?
- TIMAGE中的一些怪问题!
- 散分,多谢大家支持俺
- 简单问题,帮看看?
- 只请jie115(守望红木) 进来,以表答谢!!
- .如何做出像东方快车,金山快译那样没有标题栏,没有最大,最小,关闭按钮,却可以随意移动,谢谢。
- Borland编程大赛今天结束。CSDN令人失望。散分!
- 一个FILTER凝惑!
- 关于Tchart里用edit的值赋值给十字丝的小问题。
- 怎样用delphi压缩access数据库?
大侠,一直在等待你之中!
ICS V7 alpha1
看到上面的Demo
procedure THttpTestForm.SendButtonClick(Sender: TObject);
var
DataIn : TMemoryStream;
DataOut : TMemoryStream;
Buf : String;
begin
DisplayMemo.Clear;
DataIn := TMemoryStream.Create;
DataOut := TMemoryStream.Create;
try
Buf := 'suplno=' + Trim(SupplierIDEdit.Text) +
'&PIN=' + Trim(PinEdit.Text) +
'&LOGIN=Login';
DataOut.Write(Buf[1], Length(Buf));
DataOut.Seek(0, soFromBeginning); httpcli1.SendStream := DataOut;
httpcli1.RcvdStream := DataIn;
httpcli1.Proxy := 'intsrv02';
httpcli1.ProxyPort := '80';
HttpCli1.Cookie := 'ASPSESSIONID=OUYRWOSPOFGGPSSF';
HttpCli1.URL := 'http://www.transmed.co.za/webserv/menu.asp'; SendButton.Enabled := FALSE;
try
httpcli1.Post;
finally
SendButton.Enabled := TRUE;
DataIn.Seek(0, 0);
DisplayMemo.Lines.LoadFromStream(DataIn);
end;
finally
DataOut.Free;
DataIn.Free;
end;
end;问题:
这个例子只是直接传一个URL,如何像Indy中将
asp中<input type="upfile" id="MyFile" runat="server" />的文件
赋值MutPartForm.AddFile('upfile', fileName, 'jpg')?
我用httpcli1.SendStream 测试过不对,请朋友你指点!
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="MyFile" name="MyFile" type="file" runat="server" /> <br />
<asp:Button ID="Submit" runat="server" onclick="Submit_Click" Text="Button" />
</div>
</form>
</body>
</html>using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;namespace WebTest
{
public partial class Server_Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
} protected void Submit_Click(object sender, EventArgs e)
{
if (MyFile.PostedFile.ContentLength > 0)
{
string strSaveDir = "./upload/";
string strName = MyFile.PostedFile.FileName;
int intPath = strName.LastIndexOf("\\");
string strNewName = strName.Substring(intPath);
MyFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNewName));
Response.Write("return=succ");
}
}
}
}Delphi 的ICS发送程序,这个地方有问题的!procedure THttpTestForm.SendButtonClick(Sender: TObject);
var
DataIn : TMemoryStream;
DataOut : TMemoryStream;
Buf : String;
begin
DisplayMemo.Clear;
DataIn := TMemoryStream.Create;
DataOut := TMemoryStream.Create;
try
Buf := 'MyFile=d:\test.jpg' +
'&Submit=Submit';
DataOut.Write(Buf[1], Length(Buf));
DataOut.Seek(0, soFromBeginning); httpcli1.SendStream := DataOut;
httpcli1.RcvdStream := DataIn;
HttpCli1.URL := 'http://localhost/test.aspx';
SendButton.Enabled := FALSE;
try
httpcli1.Post;
finally
SendButton.Enabled := TRUE;
DataIn.Seek(0, 0);
DisplayMemo.Lines.LoadFromStream(DataIn);
end;
finally
DataOut.Free;
DataIn.Free;
end;
end;
希望知道的朋友能指点下。
这个让ICS的THttpCli来做,如何填入id和password这两个参数?如何模拟点击login这个事件?
下面是他们提交FirstName和LastName的方法:
procedure THttpPostForm.PostButtonClick(Sender: TObject);
var
Data : String;
begin
Data := 'FirstName=' + UrlEncode(Trim(FirstNameEdit.Text)) + '&' +
'LastName=' + UrlEncode(Trim(LastNameEdit.Text)) + '&' +
'Submit=Submit';
HttpCli1.SendStream := TMemoryStream.Create;
HttpCli1.SendStream.Write(Data[1], Length(Data));
HttpCli1.SendStream.Seek(0, 0);
HttpCli1.RcvdStream := TMemoryStream.Create;
HttpCli1.URL := Trim(ActionURLEdit.Text);
HttpCli1.PostAsync;
end;如何配合ASP.NET使用呢?用上述方法是错误的。还是没人知道吗?
呵呵。