Web Sitesine File Upload

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Necatiozbek
Üye
Mesajlar: 24
Kayıt: 23 Eki 2006 06:33

Web Sitesine File Upload

Mesaj gönderen Necatiozbek »

Herkese merhaba;

Acentalığını yaptığımız bir firmanın web sitesinden kaydını aldığımız kişilere ait bilgiler giriyoruz. Sonrasında da bu kişilere ait fotoğraflar varsa yine siteden kişilerin fotoğraflarını gönderiyoruz.
Ana firmanın web sitesi aspx olarak yapılmış.Sitede raporlamalar bölümünden bize sundukları eksik fotoğraflı kişiler listesi 20 lı gruplar halinde sayfa sayfa çıkıyor karşımıza. İlk sayfa ilk satırda ilgili kişiyi seç linkiyle(javascript) seçtikten sonra 2ci sayfa açılıyor ve resim dosyasını seçeceğimiz "Gözat" ve "Gönder" butonlarıyla birlikte aspx sayfasında.. Sayfanın form yapısı şöyle :

<form name="aspnetForm" method="post" action="resimgonder.aspx" id="aspnetForm" enctype="multipart/form-data">
<input type="file" name="$FileUpload1" id="FileUpload1" />
<input type="submit" name="$Button1" value="Gönder" id="Button1" style="width:96px;" />
Tabii bunun yanında bir sürü javascriptler vs de var sayfada..

Yapmak istediğim şey ise belki çok basit ama bir türlü işin içinden çıkamadım.. File Upload la ilgili forumdaki okuduklarımda;yetersizliğimden dolayı bende bir işe yaramadı.

Delphi tarafında yaptığım programda siteye giriş yapıp sayfaları açıyor ve veritabanımdan (excel,mdb,firebird) çektiğim kayıtları web sayfasında işlettirip kaydettirebiliyorum ama iş resim upload etmeye gelince beceremedim ve hep manuel aypmak zorunda kaldım..İlgili kişiyi Seç > Gözat > Resim Dosyasını Bul > Gönder...

Sitede user ve password gibi session uygulaması olduğu için link veremiyorum görebilmeniz için.. Bende bu kısmı delphi tarafında ini dosyasından aldığım değerleri kutucuklara yazdırarak geçiyorum webBrovser de..

Direkt post işlemi yapamasamda gözat butonuna delphiden tıklattırıp açılan Windowsun opendialog penceresindeki dosyalardan seç işlemini yaptırtabilmek ve sonunda Gönder butonuna tıklattırabilmek ve işlemi bitirmek istiyorum..
Bu işlemi diğer kayıtlar için bir döngüye almak kolay olsada bu resim seç ve gönder kısmını da manuel olmaktan çıkarabilirmiyim delphi kısmında..Nasıl ?

Teşekkürler..
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Web Sitesine File Upload

Mesaj gönderen ikutluay »

html yada asp ile upload sayfasında ki isim kısmına bir şey yazdırman güvenlik açığı olacaüı sebebi ile imkansız. pencerelere diğer uygulamalara nasıl tuş göndereceğini ise Mrmarman üstadın makalelerinde bulabilrrsin. sanırım wm_sendkey gibi bir mesaj idi.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
turkerunutmaz
Üye
Mesajlar: 57
Kayıt: 04 Oca 2008 04:53
Konum: İstanbul
İletişim:

Re: Web Sitesine File Upload

Mesaj gönderen turkerunutmaz »

webbrowser kullanıyorsan dosyanın yolunu yazdırıcaksın ve göndere tıklattırıcaksın.
yani
webbrowser1.oleobject.document.getelementbyid('FileUpload1').value:=dosyayolu;
webbrowser1.oleobject.document.getelementbyid('Button1').click;
eğer idhttp bileşeni kullanıyorsan post metodu ile tidmultipartformdatastream i incelemeni tavsiye ederim. ve cookie taşımalısın eğer session bilgisi tutuluyorsa.
Necatiozbek
Üye
Mesajlar: 24
Kayıt: 23 Eki 2006 06:33

Re: Web Sitesine File Upload

Mesaj gönderen Necatiozbek »

webbrowser1.oleobject.document.getelementbyid(FileUpload1').Value:='c:\Resimlerim\Logo.jpg';

Dosyayolunu yazdırmakla ilgili verdiğiniz öneride yukarıdaki gibi bir şey yazmıştım ama en azından offline olarak hazırladığım bir web sayfasını webbrowserde açıp denediğimde 'c:\Resimlerim\Logo.jpg' yolunu ilgili kutucuğa yazdıramadım.. Gönder Tuşu basıyor ama yolu yazdırmak nafile.. belkide ben yanlış yaptım..
Aslında bu yöntem olsaydı sanırım daha kolay olacaktı.

Diğer yöntemle ilgili olaraksa forum konularından okuduğum kadarıyla basit bir kod bloğu aşağıdaki gibi olsa gerek, Data göndermekle ilgili.. yanlız burada anlayamadığım bir şey var..Bir şeyler eksik gibi..

var
Stream: TIdMultipartFormDataStream;
begin
Stream := TIdMultipartFormDataStream.Create;
try
Stream.AddFile( 'userfile', 'Logo.jpg', 'content_type' );
IdHTTP1.Post( 'Logo.jpg', Stream );
IdHTTP1.Post( 'http://......../resimgonder.aspx', Stream );
finally
Stream.Free;
end;

Bu kod bloğu Logo.jpg isimli dosyanın kendisini direk ana firmanın webserverındaki veritabanına kayıt edilmek için gönderiyor anladığım kadarıyla.
Fakat başka bir şeylerin-bilgilerin daha gönderilmesi gerekmiyormu ? Bu gönderdiğimiz dosya şu kişiye, şu kayda ait diye ? Bilgilerinizi ve tecrübelerinizi paylaşırsanız sevinirim.. Yada bizim bir datayı post etmeden önce formun post-get vs sinden başka neleri bilmemiz-çözümlememiz gerekiyor.
Kullanıcı avatarı
turkerunutmaz
Üye
Mesajlar: 57
Kayıt: 04 Oca 2008 04:53
Konum: İstanbul
İletişim:

Re: Web Sitesine File Upload

Mesaj gönderen turkerunutmaz »

işte kimin sayfası olduğu vs. demekki session da tutuluyor. bu yüzden idhttp ile post yapmadan önce önceki sayfalarda login olup cookie taşıyacaksın. ama webbrowser ile yapıyorsan bununla uğraşmana gerek yok. dediğim şekilde olmadıysa oraya dosya yolunu yazdırmanın yolunu bulmaya çalış diğer yöntemden daha kolay hiç olmazsa.
Kullanıcı avatarı
turkerunutmaz
Üye
Mesajlar: 57
Kayıt: 04 Oca 2008 04:53
Konum: İstanbul
İletişim:

Re: Web Sitesine File Upload

Mesaj gönderen turkerunutmaz »

küçük bir araştırma sonucu bunu buldum
http://delphi.about.com/od/delphitips20 ... delphi.htm
hasan
Üye
Mesajlar: 129
Kayıt: 16 Oca 2004 10:01
Konum: Bursa
İletişim:

Re: Web Sitesine File Upload

Mesaj gönderen hasan »

turkerunutmaz;
Hocam bu Post işlemleri ile ilgil yaptığın kod bloğunu yazar mısın ? Bende aynı şeyi yapmaya çalışuıyorum , delphiden girilen verileri MS SQL e yazdırmam lazım , ama asp.net dosyasına nasıl bağlanacağım ? biliyosun asp.net derlenince dll dosyalarına dönüyor ve .cs kod dosyaları silinior.Sen nasıl bağlanıp veritabanına kayıt yaptırdın ?
::::::::www.BursaEmlak.com:::::::::
Emlak ve Emlakçının buluşma Noktası
Cevapla