前面发了个贴问怎么上传下载视频,在坛里多位大哥的热心教导下,小弟终于掌握了,贴部分代码。
上传下载确实很慢很慢,现在求各位帮我设计个进度条。procedure TForm1.Button3Click(Sender: TObject); //保存视频
var
query:TADOquery;
begin
Query := TADOQuery.Create(nil);
Query.Connection:= form1.ADOConnection1;
Query.SQL.Add(Insert into mv (视频) values(:视频));
Query.Parameters.ParamByName('视频').loadfromfile(Edit4.Text,ftBlob);
try
Query.ExecSQL;
showmessage('信息写入成功')
except
showmessage('数据写入失败')
end;
end;procedure TForm1.Button4Click(Sender: TObject); //播放视频
var
query:TADOquery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := form1.ADOConnection1;
Query.SQL.Text:= 'select * from mv';
Query.Open;
TBlobField(Query.Fields[2]).SaveToFile('c:\temp.avi');
MediaPlayer1.FileName := 'c:\temp.avi';
MediaPlayer1.Open;
MediaPlayer1.Play;
Query.Free;
end;
上传下载确实很慢很慢,现在求各位帮我设计个进度条。procedure TForm1.Button3Click(Sender: TObject); //保存视频
var
query:TADOquery;
begin
Query := TADOQuery.Create(nil);
Query.Connection:= form1.ADOConnection1;
Query.SQL.Add(Insert into mv (视频) values(:视频));
Query.Parameters.ParamByName('视频').loadfromfile(Edit4.Text,ftBlob);
try
Query.ExecSQL;
showmessage('信息写入成功')
except
showmessage('数据写入失败')
end;
end;procedure TForm1.Button4Click(Sender: TObject); //播放视频
var
query:TADOquery;
begin
Query := TADOQuery.Create(nil);
Query.Connection := form1.ADOConnection1;
Query.SQL.Text:= 'select * from mv';
Query.Open;
TBlobField(Query.Fields[2]).SaveToFile('c:\temp.avi');
MediaPlayer1.FileName := 'c:\temp.avi';
MediaPlayer1.Open;
MediaPlayer1.Play;
Query.Free;
end;
解决方案 »
- Delphi7下如何模拟HTTP post/get请求,并能够获取响应的文本.
- Delphi如何解决 License id invalid or has expired
- 又一个SQL的简单问题,要分的进来啊
- 求复杂SQL语句一条!
- 不懂就问才会有进步,请高手指教,谢谢!
- 提问,运行期加载函数
- Delphi9已经成了集成IDE,那么相信已经成为了历史.
- 我要引用WINDOWS的API函数,请问单元里要怎么样声明?
- 哪位高手知道联想同禧机的主板上的网卡连线插座?
- 一个关于INI文件写入的问题?(写入小节)
- 使用 TIdTcpServer 和 TIdTcpClient 数据通信 问题???
- 关于delphi写动态库c调用的问题
它先是创建一个TStream对象,然后TStream对象调用了一个CopyFrom方法,此方法里面有一个循环是一个个Buffer读出数据的
可以根据它实现的方法思路稍微改变一下,加上进度条另外写一个方法出来,应该也可以改成边下载边播放不过,不建议把文件存在数据库中,因为数据库大小会增长的很快,变的很庞大
最好有一个文件系统,数据库只保存路径,然后程序根据此路径用FTP/Socket方式上传下载
如果读取慢的话就加个显示,开始读读取中播放
如果读取慢的话就加个显示,开始读读取中播放
可以开一个ftp,用ftp或http方式进行上传、下载
实现局域网内文件的上传和下载,包括断点续传都是可以的。
procedure TForm1.FtpDownLoad(aURL, aFile: string; bResume: Boolean);
var
tStream: TFileStream;
sName, sPass, sHost, sPort, sDir: string;
begin //ftp方式下载
if FileExists(aFile) then //建立文件流
tStream := TFileStream.Create(aFile, fmOpenWrite) else
tStream := TFileStream.Create(aFile, fmCreate);
GetFTPParams(aURL, sName, sPass, sHost, sPort, sDir);
with IdFTP1 do
try
if Connected then Disconnect; //重新连接
Username := sName;
Password := sPass;
Host := sHost;
Port := StrToInt(sPort);
Connect;
except
exit;
end; IdFTP1.ChangeDir(sDir); //改变目录
BytesToTransfer := IdFTP1.Size(aFile);
try
if bResume then //续传
begin
tStream.Position := tStream.Size;
IdFTP1.Get(aFile, tStream, True);
end else
begin
IdFTP1.Get(aFile, tStream, False);
end;
finally
tStream.Free;
end;
end; 1.“连接”代码:
procedure TForm1.Button2Click(Sender: TObject);
begin
nmftp1.Host :=edit3.Text ;
nmftp1.UserID :=edit1.text;
nmftp1.Password :=edit2.text;
nmftp1.Connect ;
end;
2.“上传”代码:
procedure TForm1.Button5Click(Sender: TObject);
var s:string;
begin
s:=label5.caption;
nmftp1.Upload('s',null); 3.“中止”代码:procedure TForm1.Button4Click(Sender: TObject);
begin
NMFTP1.Abort ;
end;