Dosya indirmede dosya adı ve boyutu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

s.a.
Arkadaşlar

Kod: Tümünü seç

var
Stream:TFileStream;

begin
Stream:=TFileStream.Create('Dosya adı', fmCreate);
IdHttp.Get(Url_Adresi, Stream); 
kodu ile siteden dosya indirirken
dosya adlarında boşluk yoksa ve Türkçe haf bulunmuyorsa sorunsuz iniyor
ama dosya adında boşluk ve Türkçe harf varsa indirmiyor, hata veriyor
nasıl halledebiliriz.
En son White Rose tarafından 26 Mar 2014 08:30 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Dosya indirmede dosya adı problemi

Mesaj gönderen Lord_Ares »

indirme işlemi başlamadan önce dosyanın adını bir ansistring değişkene al ve bu değişkeni trim kullanarak içerisindeki boşlukları atıp, uppercase kullanarak büyük harfe çevirerek bir denermisin. Belki faydalı olabilir. ( Veya encode kullanarak dene Örnek : Encode(dosyadı) )
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı problemi

Mesaj gönderen White Rose »

Arkadaşlar aşağıdaki kod ile dosya adındaki boşluk ve Türkçe harfleri geçtim ama bunda da dosyanın
tamamını değil 1/4 nü download ediyor. 16 kb lık dosyayı 400 bayt olarak indiriyor. Anlamadım gitti.

Kod: Tümünü seç

function GetInetFile (const fileURL, FileName: String): boolean;
const
   BufferSize = 1024;
var
   hSession, hURL: HInternet;
   Buffer: array[1..BufferSize] of Byte;
   BufferLen: DWORD;
   f: File;
   sAppName: string;
begin
  result := false;
  sAppName := ExtractFileName(Application.ExeName) ;
  hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) ;
  try
  hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0) ;
  try
    AssignFile(f, FileName) ;
    Rewrite(f,1) ;
    repeat
     InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen) ;
     BlockWrite(f, Buffer, BufferLen)
    until BufferLen = 0;
    CloseFile(f) ;
    result := True;
   finally
    InternetCloseHandle(hURL)
   end
  finally
   InternetCloseHandle(hSession)
  end
 end;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

Merhaba
ilk mesajınızda ki kod için söylüyorum , uses a idURI unitini ekleyin ve kodunuzu şöyle güncelleyip deneyin,

Kod: Tümünü seç

var
Stream:TFileStream;

begin
Stream:=TFileStream.Create('Dosya adı', fmCreate);
IdHttp.Get(TidURI.URLEncode( Url_Adresi ), Stream); 
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

vkamadan yazdı:Merhaba
ilk mesajınızda ki kod için söylüyorum , uses a idURI unitini ekleyin ve kodunuzu şöyle güncelleyip deneyin,

Kod: Tümünü seç

var
Stream:TFileStream;

begin
Stream:=TFileStream.Create('Dosya adı', fmCreate);
IdHttp.Get(TidURI.URLEncode( Url_Adresi ), Stream); 
Cevap için teşekkür ederim ama yine olmadı
Hata : HTTP/1.1 406 Not AccepTable

Netteki dosya adı : Fiş Raporu2.fr3
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

Tam URL i gönderirmisiniz.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

url adresi :
http://www.yusufakgul.org/rapor/Fiş Raporu2.fr3
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

Normal browser dan da indiremiyoruz , RAPOR klasörünü listeleyip içinden türkçe karakterli ya da boşluklu bir dosyaya tıkladığımız da hata alıyoruz.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

Evet maalesef.
İkinci yazdığım kodla iniyor ama, yukarda da bahsettiğim gibi orda da dosyayı eksik indiriyor. :(
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

Bendce 2nci yazdığınız kodla da dosya inmiyor, hata için çıktı dönen HTML sayfası iniyor ?
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

:) evet öyleymiş hiç dosya içine bakmamıştım :(
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

İçinde Boşluk ve Türkçe harf bulunan dosyaları download etmenin başka yolu yok mudur acaba
Netten çok araştırdım çok kod denedim bir türlü olmadı.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

eğer sunucu size aitse, FTP den denediniz mi? idFTP gibi ?
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen White Rose »

O durumda da ftp kullanıcı adı ve şifre gerekiyor, kullanmak istemiyorum açıkcası.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Dosya indirmede dosya adı ve boyutu

Mesaj gönderen vkamadan »

Anladım, maalesef başka bir fikrim yok.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla