Poslao: 20 Mar 2007 15:09
|
offline
- Pridružio: 03 Nov 2006
- Poruke: 59
|
- procedure Tdownload.IWButton1Click(Sender: TObject);
- var fn:TFileName;
- id:integer;
- nz:string;
- ime:string;
- a:boolean;
- var stream:TStream;
- fstream:TfileStream;
- var pth:string;
- begin
- // odredi download path
- With TIWuserSession(webapplication.data) do begin
- pth:=downloadpath;
- end;
-
- if not(p.blobs.Active) then p.blobs.Active:=true;
- id:=DataSource2.DataSet.fieldbyname('id').AsInteger;
- try
- p.blobs.FindKey([id]);
- if p.blobs.IsEmpty then begin
- WebApplication.ShowMessage('Ne mogu pronaci dokument u bazi');
- exit;
- end else begin
- stream := p.blobs.CreateBlobStream(p.blobs.FieldByName('DMSCONTENT'),bmRead);
- stream.Position := 0;
- //
- ime:= 'DOWNLOAD_'+floattostr(now)+p.IdentFILEEXT.asstring;
- //
- fstream:=TfileStream.Create(pth+ime,fmcreate );
- fstream.CopyFrom(stream,stream.Size);
- fstream.Free;
-
- // Webapplication.SendFile(pth+ime,'',ime,true);
- Webapplication.SendFile(pth+ime,true,'',ime);
- END
- except
- on E:Exception do begin
- p.PorukaKorisniku :='Weblink Greska 00026 -'+'Error in create download stream ';
- p.OpisGreske :=e.Message;
- p.neuspjelakomanda :='';
- p.SnimiGreskuUAlert(p.username,p.neuspjelakomanda,p.PorukaKorisniku,p.OpisGreske);
- WebApplication.ShowMessage(p.PorukaKorisniku);
- end;
- end;
- // WebApplication.RunParams.Clear;
- end;
Ljudi, ovo je kod koji imam ne nekom Button-u, rdai se o Web aplikaciji radjenoj u Intraweb tehnologiji i sada sta je problem?
Pa ovako, ovo dugme sluzi za skidanje nekog dokumenta i kada zavrsim sa skidanjem tog dokumenta nesto mi drzi resurse, tako da ne mogu pristupiti nicemu sto se nalazi na formi (stranici) sve dok ne kliknem BACK na html stranici.
Kako ovo mogu da rijesim?
Meni se cini da me ovo zeza.
- fstream:=TfileStream.Create(pth+ime,fmcreate );
- fstream.CopyFrom(stream,stream.Size);
- fstream.Free;
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 20 Mar 2007 18:11
|
offline
- beli0135

- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
jassta da te to zeza..
Prvo, TStream nije klasa koju bi trebalo koristiti, ali ajde, moze.
Medjutim, nije samo tu problem
ovako se ne radi
stream := p.blobs.CreateBlobStream(p.blobs.FieldByName('DMSCONTENT'),bmRead);
radi se ovako
- ms:=TMemoryStream.Create;
- try
- TBlobField(blobs.FieldByName('DMSCONTENT')).SaveToStream(ms);
- ms.position:=0;
- ms.SaveToFile('ime fajla');
- finally
- ms.free;
- end;
|
|
|
|
Poslao: 21 Mar 2007 09:07
|
offline
- Pridružio: 03 Nov 2006
- Poruke: 59
|
Beli, hvala na pokusaju, ali nije uspjelo.
Ipak nije do TStream klase, jer sam kasnije pokusao ovako :
bloblibrary.save_blob_to_file(p.blobs.FieldByName('DMSCONTENT'),pth+ime,p.blobs);
Naravno probao sam i tvoju metodu, ali uvjek isto.
Znaci svaki od ovih nacina odradi posao, ali kasnije ne mogu kliknuti niti jedan link ili neku drugu stvar na otvorenoj stranici, sve dok u Internet Exploreru ne kliknem 'Back'. Tada se sve odblokira i mogu normalno da radim.
Dopuna: 21 Mar 2007 9:07
Jos nesto, ovo na DELPHI7 radi nesto drugacije, tamo se sve otvara u Internet Exploreru, pa svakako moram kliknuti na 'Back', da bi se vratio na stranicu odakle mogu da skidam stranice. Dok Borland2006, datoteku otvara, recimo .doc - otvara Word, skenirani dokument - Imaging i tako redom, a stranica u Internet Exploreru ostaje ona sa koje se skidaju te datoteke ili slike...
|
|
|
|
Poslao: 21 Mar 2007 12:04
|
offline
- beli0135

- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Pazi, ja ne znam sta ti oduzima resurse, ali si definitivno pogresio kod preuzimanja BLOBa, radi se kako sam ti napisao.
Sto se ostalog tice, proveri code.
Delphi ima lepe stvarchice kao F5, F7, F8, Ctrl+F7, Ctrl + Alt + S
|
|
|
|
Poslao: 22 Mar 2007 15:45
|
offline
- Pridružio: 03 Nov 2006
- Poruke: 59
|
Webapplication.SendFile(pth+ime,true,'',ime);
Ovo je uzrok mojih problema, ali bez toga ne mogu.
Ma znam za te lijepe stvarcice, ali nema pomoci od njih, probavao sam 1000 puta.
Ako stavim,
Webapplication.SendFile(pth+ime,false,'',ime);
onda se ponasa kao u delphi7, znaci otvara mi datoteku u Internet Exploreru, ali tada je problem sto pola stvari ne moze da otvori, ne konta ih.
Da li postoji neka slicna funkcija, gore navedenoj da probam sa njom nesto da uradim, ali da nije
WebApplication.SendStream(fstream,true,'',ime);
posto od ove vajde nema.
Dopuna: 22 Mar 2007 15:45
Ljudi, rjesio sam problem.
Naime na formi -> properties -> locksubmit treba staviti False i radi kao zmaj !!!
|
|
|
|