IDHttp İle Post Yaparken Type Ayarlamak ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

IDHttp İle Post Yaparken Type Ayarlamak ?

Mesaj gönderen Trial_Cooder »

Kod: Tümünü seç

<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="userfile" type="file">
IDHttp İle Post Yaparken Type Ayarlamam Lazım, Böyle Bişey Varmı ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Kod: Tümünü seç

var
 Stream            : TIdMultipartFormDataStream;
begin
 Stream := TIdMultipartFormDataStream.Create;
 try
   Stream.AddFile( 'userfile', 'dosyaadi.txt', 'file' );
   IdHTTP1.Post( 'http://www.benimsite.com/upload.php', Stream );
 finally
   Stream.Free;
 end;
end;
şeklinde bir deneyebilirsin... file yerine content_type olarak daha özel ifadeler de kullanılabilir.

// EDIT //

- Aradaki post için parametreleri oluşturmayı biliyorsun zaten...
Resim
Resim ....Resim
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

anlaşılmadım
php konusundaki sorduğum soru ile çelişkisi var

viewtopic.php?t=20857


iki soruyu bilinçli olarak birleştirince ortaya çıkan soru "submit yapmadan script çalıştırmak" oluyor.

Kod: Tümünü seç

<form enctype="multipart/form-data" action="upload.php" method="post">
<input name="userfile" type="file">
<input name="k" type="type">
<input name="log" type="text">
<input type="submit" value="Gönder">
</form>
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Zaten POST komutu verdiğinde SUBMIT butonuna basmış gibi işlem yapmıyor musun ?

- Eğer kendi web sunucun değil de üçüncü senin olmayan başka bir sunucu ise o zaman başka türlü şeyler uygulamak lazım. Böyle yapamazsın. Çünkü işin içine Login ve Session uygulaması giriyor olabilir.

- Delphi'deki post bloğunda önce parametreleri doldurup ardından da Stream olarak dosyayı uladığında UPLOAD işlemi gerçekleşecektir.
Resim
Resim ....Resim
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
 Stream: TIdMultipartFormDataStream;
begin
 Stream := TIdMultipartFormDataStream.Create;
 try
   Stream.AddFile( 'userfile', 'deneme.txt', 'content_type' );
   IdHTTP1.Post( 'http://127.0.0.1/upload.php', Stream );
 finally
   Stream.Free;
 end;
end;

Kod: Tümünü seç

<?php

$uploadDir = '../a/';

$uploadFile = $uploadDir . $_REQUEST['userfile']['name'];

if (@move_uploaded_file($_REQUEST['userfile']['tmp_name'], $uploadFile))
{
print "File was successfully uploaded.";
}
else
{
print "There was an error. Please try again hata kodu".$_REQUEST['userfile']['error'].'--'; <--Değişen satır

}

?>

şöyle bişey yaptım ama 0 hata 0 eylem ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Upload PHP scriptin hatalı hocam... Doğru PHP kodlaması için

Ref : http://www.php.org.tr/index.php?option= ... &Itemid=28

linkinden faydalanabilirsin...

Daha önce kullandıklarımdan örnek bir tane ben vereyim...

// Aynı Delphi Kodu //

Kod: Tümünü seç

var 
 Stream: TIdMultipartFormDataStream; // Uses IdMultipartFormData
begin 
 Stream := TIdMultipartFormDataStream.Create;
 try
   Stream.AddFile( 'userfile', ExtractFilePath(Application.Exename)+'deneme.txt', 'application/octet-stream' );
   ShowMessage( 'Sonuc : '+IdHTTP1.Post( 'http://www.domaim.com/upload.php', Stream ) );
 finally
   Stream.Free;
 end;
end;
// Çalışan bir Upload PHP Kodu //

Kod: Tümünü seç

<?php
$site_name = $_SERVER['HTTP_HOST'];
$url_dir   = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this  = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "./";
$upload_url = $url_dir."/";
$message    = "";

if ($_FILES['userfile']) {
	$message = do_upload($upload_dir, $upload_url);
}
else {
	$message = "Geçersiz dosya.";
}
print $message;
function do_upload($upload_dir, $upload_url) {
	$temp_name = $_FILES['userfile']['tmp_name'];
	$file_name = $_FILES['userfile']['name'];
	$result    = $_FILES['userfile']['error'];
	$file_url  = $upload_url.$file_name;
	$file_path = $upload_dir.$file_name;
    if ( $file_name =="") {
    	$message = "Geçersiz dosya adı belirtilmiş...";
    	return $message;
    }
    $result  =  move_uploaded_file($temp_name, $file_path);
    $message = ($result)?"Gönderilmiş dosya = $file_url" :
		         "Sorun var. Dosya gönderilemedi...";
    return $message;
}
?>
Resim
Resim ....Resim
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

teşekkürler

Kod: Tümünü seç

<?php
  @move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name']);
?>
işimi gördü ;)
Cevapla