我的webservice代码如下:[WebMethod(Description="Web 服务提供的方法,返回是否文件上载成功与否。")] public string zlUploadFile(byte[] fs)
{
try
{
///定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream m = new MemoryStream(fs);
///生成新文件名
Random r=new Random(System.Environment.TickCount); //关键就是随机种子
int rnd=r.Next(2,99);
string filename = DateTime.Now.ToString("yyyyMMddhhmss")+Convert.ToString(rnd) ;
string xfilename = ".jpg";
string sfilename=UploadPath + filename + xfilename ;//含有路径的新文件名
string sfileurlname = filename + xfilename ; //存进数据库的新文件名
///定义实际文件对象,保存上载的文件。
FileStream f = new FileStream(sfilename, FileMode.Create);
///把内内存里的数据写入物理文件
m.WriteTo(f);
m.Close();
f.Close();
f = null;
m = null;
return "文件已经上传成功。";
}
catch(Exception ex)
{
return ex.Message;
}
}
以上webservice方法在.net中已经调试成功在delphi中调用时该如何传参数,该方法引用到在delphi中的声明是
function zlUploadFile(const fs: TByteDynArray): WideString; stdcall;
请高手帮忙我的delphi代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var filename:string;
x:string;
MStream: TMemoryStream;
c: array of TByteDynArray;
begin
HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=true;
HTTPRIO1.WSDLLocation:='http://localhost/grsb/pswService.asmx';
HTTPRIO1.Service:='pswService';
HTTPRIO1.Port:='pswServiceSoap';
HTTPDeclare:=HTTPRIO1 as pswServiceSoap; MStream := TMemoryStream.Create;
try
if OpenDialog1.Execute then
begin
filename:=OpenDialog1.FileName;
MStream.LoadFromFile(filename);
MStream.Position := 0;
SetLength(c, MStream.size);
MStream.ReadBuffer(c[0], MStream.size);
x:=HTTPDeclare.zlUploadFile(c[0]);
//ShowMessage(x);
end;
finally
MStream.Free;
end;
end;
{
try
{
///定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream m = new MemoryStream(fs);
///生成新文件名
Random r=new Random(System.Environment.TickCount); //关键就是随机种子
int rnd=r.Next(2,99);
string filename = DateTime.Now.ToString("yyyyMMddhhmss")+Convert.ToString(rnd) ;
string xfilename = ".jpg";
string sfilename=UploadPath + filename + xfilename ;//含有路径的新文件名
string sfileurlname = filename + xfilename ; //存进数据库的新文件名
///定义实际文件对象,保存上载的文件。
FileStream f = new FileStream(sfilename, FileMode.Create);
///把内内存里的数据写入物理文件
m.WriteTo(f);
m.Close();
f.Close();
f = null;
m = null;
return "文件已经上传成功。";
}
catch(Exception ex)
{
return ex.Message;
}
}
以上webservice方法在.net中已经调试成功在delphi中调用时该如何传参数,该方法引用到在delphi中的声明是
function zlUploadFile(const fs: TByteDynArray): WideString; stdcall;
请高手帮忙我的delphi代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var filename:string;
x:string;
MStream: TMemoryStream;
c: array of TByteDynArray;
begin
HTTPRIO1.HTTPWebNode.UseUTF8InHeader:=true;
HTTPRIO1.WSDLLocation:='http://localhost/grsb/pswService.asmx';
HTTPRIO1.Service:='pswService';
HTTPRIO1.Port:='pswServiceSoap';
HTTPDeclare:=HTTPRIO1 as pswServiceSoap; MStream := TMemoryStream.Create;
try
if OpenDialog1.Execute then
begin
filename:=OpenDialog1.FileName;
MStream.LoadFromFile(filename);
MStream.Position := 0;
SetLength(c, MStream.size);
MStream.ReadBuffer(c[0], MStream.size);
x:=HTTPDeclare.zlUploadFile(c[0]);
//ShowMessage(x);
end;
finally
MStream.Free;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货