delphi 怎么做一个上传图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 怎么做一个上传图片相关的知识,希望对你有一定的参考价值。

1 不能用到任何数据库2 图片只能存放在本地或者指定路径3 一上传图片成功就要显示出图片,并且在指定路径下也会生成一个刚刚上传的图片有没哪个朋友会滴,请告诉我 谢谢。

SQL Server 2005里的Image字段装的就是文本类型数据; delphi上传图片--个人照片 1. 使用到的控件: (1) Image 控件(TImage类的); (2) OpenPictureDialog控件(打开图片的控件); 2. 使用到一个类:TMemoryStream 3. 数据库的字段:Blob字段;存放图像的二进制; 功能一: 清除照片 步骤: Image1.Picture.Graphic := nil ;
Image1.Tag := 1 ;使用如下语句即可; 功能二: 添加照片 步骤:1. 打开硬盘,选择照片时,用以下过程:
procedure TRYGLEditForm.image1DblClick(Sender: TObject);
var
filestream:TFileStream;
begin
inherited;
if not (dsMaster.State in [dsEdit , dsInsert]) then
exit ; if dlgOpenPic1.Execute then
begin
try
filestream := TFileStream.Create(dlgOpenPic1.FileName,fmOpenRead);
if filestream.Size > 20000 then
begin
MsgDialog.ShowError('图片太大影响速度,不能超过20K大小');
abort;
end;
finally
filestream.free;
end;
Image1.Picture.LoadFromFile(dlgOpenPic1.FileName);
Image1.Tag := 1 ;
end;
end; 2. 保存到数据库时:
--cyj 保存图片--
procedure TRYGLEditForm.SavePicture;
var
PicName , ext : string ;
strm : TMemoryStream;
begin
try
if Image1.Picture.Graphic = nil then exit;
strm := TMemoryStream.Create ;
Image1.Picture.Graphic.SaveToStream(Strm);
strm.Position := 0 ; if strm.Size = 0 then
cdsPHOTO.FieldByName('photo').Clear
else
begin
With cdsPHOTO do
begin
if recordcount > 0 then
Edit
else
Append;
TBlobField(FieldByName('PHOTO')).LoadFromStream(strm);
Post;
ApplyUpdates;
end;
end;
finally
strm.Free ;
end;
end ; //--读取图片到Image控件, 在formshow事件里调用ShowPhoto()即可
--显示个人照片 支持bmp jpg格式--
procedure TFmEmployeeInput.ShowPhoto();
var
//strm: TADOBlobStream;
strm: TClientBlobStream; //--因为用的是ClientDataSet组件作为数据读取控件
JpegImage: TJpegImage;
Bitmap: TBitmap;
PType: Integer;
begin
PType := 0; if FMEmployee.CDS1.FieldByName('photo').AsString = '' then
begin
Exit;
end;
strm := TClientBlobStream.Create(tblobfield(FMEmployee.CDS1.FieldByName('photo')),bmread);
try //try1
strm.position :=0;
image1.Picture.Graphic := nil; //清除图像
// BMP、JPEG两种图像数据必需分别处理
if PType = 1 then //BMP型图像数据
begin //begin11
bitmap := tbitmap.Create ;
try //try11
bitmap.LoadFromStream(strm);
image1.Picture.Graphic := bitmap;
finally
bitmap.Free;
end; //end try11
end //end begin11
else
if PType = 0 then //JPEG型图像数据
begin //begin12
jpegimage := tjpegimage.Create ;
try //try12
jpegimage.LoadFromStream(strm);
image1.Picture.Graphic := jpegimage;
finally
jpegimage.Free ;
end; //end try12
end; //end begin12
finally
strm.Free ;
end; //end try1
参考技术A var MsImg: TMemoryStream;
begin
MsImg := TMemoryStream.Create;
MsImg.LoadFromFile(errorimage);
TmpQuery.close;
TmpQuery.sql.text:='select * from 数据表名 where 条件';
TmpQuery.open;
TmpQuery.edit;
TBlobField(TmpQuery.fieldbyname('字段名')).LoadFromStream(MsImg);
TmpQuery.post;
end;

thinkphp 我想做一个图库。。。能上传成功。。怎么才能让它全部显示出来

参考技术A 我提供几个途径供你学习:1.下载ueditor编辑器,里面上传图片有已上传图片管理,看源码就行。2.用ajax做图片管理,源码可以参考高洛峰写的brocms,里面有类似功能,最后,祝楼主好运! 参考技术B 上传时候路径存储到数据库,然后你显示的时候用路径就好了追问

摁。

参考技术C 用现成的thinkcmf框架吧,不然显示要全部写代码追问

能给我写一两个显示的代码吗。。。大概得就行。。谢谢

追答

没有深入研究过thinkphp,没法帮你写,不过如果你会HTML,掌握thinkphp的基本规则,应该不难

thinkphp只是一个内核,要做成成品网站要做的工作还多

追问

好的。谢谢

本回答被提问者采纳
参考技术D 图库,干嘛用的,能在详细点么追问

就相当于相册那种形式。。。我想点击按钮。就能显示所有图片

追答

图片要求存入数据库么,还是直接读取文件夹?你可以读文件夹,然后把图片循环显示出来,或者把地址存入数据库里面,

以上是关于delphi 怎么做一个上传图片的主要内容,如果未能解决你的问题,请参考以下文章

php 在多个上传图片时 怎么获取 要上传的图片宽高

C# 怎么实现上传图片到数据库 代码

【Android开发】怎么在ListView中做一个图片批量上传的队列

微信小程序用户上传用户图片数据太大,怎么样能降低图片像素

php为啥上传图片会失败

我要在一个网页上传一张图片到服务器,然后保存图片的地址,在另一个页面显示图片