向服务器 上传文件的代码

从ftp中调取图片时出现的不可理解的问题,请高手帮忙看看

 系统winxp delphi6.0
var
   myjpeg1:TJPEGImage;
   MS:TMemor
yStream;
begin
//从ftp调取图片
   myjpeg1:=TJPEGImage.Create;
   MS:=TMemoryStream.Create; //使用流
   idftp1.Connect;
   idftp1.Get(tpdir+'\'+picturename+'.jpg',MS);
   idftp1.Disconnect;
   Ms.SaveToFile('C:\'+picturename+'.jpg');
   myjpeg1.LoadFromFile('C:\'+picturename+'.jpg');
   imageX.picture.Assign(myjpeg1);
   myjpeg1.Free;
   Ms.Free;
   end;
//以上可以运行正常,但是我是想直接从流中读出,而不是从文件读出
   将红色部分改成
   myjpeg1.LoadFromStream(Ms);
则运行出错,编译可以通过,不解?


加上MS.position:= 0;

--------------------------------------------------------------------------------------

谢谢楼上各位,忘记过来回帖了,不好意思!
现在不用https了,但是还有个问题,就是post返回值中文乱码的问题。
我用的delphi2010,使用idhttp post得到的返回值是utf8编码格式的字符串,里面的中文是乱码,使用utf8toString,httpDecode等解码函数都试过了,但没解决问题,不知道朋友们遇见过这样的问题吗?



乱码问题也解决了
关键代码就在这三行
   RsltStrm:=TStringStream.Create('',TEncoding.UTF8);
   IdHTTPClient.Post('',tmpStrList,RsltStrm);
   tmpStrList.Text:=RsltStrm.DataString;
多谢各位朋友!!!


----------------------------------------------------------------------------------------

但如果用update的话(如下代码);
procedure TfrmStudentInfoManage.Label10Click(Sender: TObject);
var
   Ms:TmemoryStream;
   jpg:Tjpegimage;
   begin
   if OpenPictureDialog1.Execute then
   begin
   Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
   ms:=TmemoryStream.Create;
   Jpg:=TJpegImage.Create;
   Jpg.Assign(Image1.Picture.Graphic);
   Jpg.SaveToStream(Ms) ;
   Ms.Position :=0;
   adoquery1.Close;
   adoquery1.SQL.Clear;
   ADOQuery1.SQL.Add('update StudentInfoData set 学号=:学号,照片:=照片'); //保存图片到数据库
   adoquery1.Parameters.ParamByName('学号').Value:=DBEdit1.Text;
   adoQuery1.Parameters.ParamByName('照片').LoadFromStream(ms,ftBlob);
   adoquery1.ExecSQL;
   Ms.Free ;
   jpg.free;
   end
   else
   begin
   Application.MessageBox('保存出错或文件名无效!','出错',64);
   exit;
   end;
   end;


-------------------------------------------------------------------------------------------------------

fastreport直接打印

fastreport直接打印

fastreport如何直接打印符合条件的报表?
Close;
sql.Clear;
SQL.Add('select top 1 * from s
f_cbzjmx where id='+inttostr(dj_id));
open;
//直接打印报表
frxReport1.LoadFromFile('sf_cbzjmx.fr3');
frxReport1.PrepareReport();
frxReport1.PrintOptions.ShowDialog:=false;
frxReport1.Print;
想不通过预览,直接打印select出来的结果。但以上语句实现不了。
如果预览,用如下语句是可以的:
frxReport1.LoadFromFile('sf_cbzjmx.fr3');
frxReport1.ShowReport;


多谢你的提醒。按照你的思路,把问题解决了。谢谢。
你 TfrxReport 里面还没导入数据集呢,导入.fr3之前 Clear 一下 TfrxReport,然后把已经 Open 的数据集 TADOQuery 赋给一个 TfrxDBDataset , TfrxDBDataset 赋给 TfrxReport 之前清空 TfrxReport 里面已经存在的数据集,然后打印就可以了...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值