Sağolsun forumdan bir arkadaş yarım yamalak bot yapınca iş başa düştü.
db ye kaydediyor. ismi alıyor vs herşey güzel fakat upload klasörüne baktıgımda 0 byte olarak boş bir resim çekiyor.
Karşı sitedençekeceğim resim .jpg değil uzantısı .jpeg acaba ondan mı çakıyoruz anlamadım. fonksiyonda da .jpeg olarak belirlemiştim ama bir türlü aşamadım burayı.
Yardımcı olur musunuz?
function wp_resim_ekle( $url, $pid, $bas = null, $ozelalan = null )
{
$Rname = "oyun-oyna-".rand(10,1000000);
$filename = $Rname.$bas.".jpeg"; // $filename değişkenine .jpg değeri atar.
$filename = remove_accents( $filename ); // remove_accents ne işe yarıyor?
if ( function_exists( "mb_strtolower" ) )// function_exists, mb_strtolower komutunun çalışıp çalışmadığını denetliyor.
{
$filename = mb_strtolower( $filename, "UTF-8" ); //mb_strtolower değişken içindeki harfleri utf-8 formatında küçük harfe çeviriyor.
}
$filename = utf8_uri_encode( $filename ); // buda yine karakterler ile ilgili birşey.
$filetype = wp_check_filetype( $url ); //Dosya adı, Dosya türü almak. (bu satırda $url de boş, $filetype ta boş.)
extract( $filetype ); //Her anahtarın geçerli bir değişken adı olup olmadığına bakmaktan başka bu değişkenlerin simge tablosundakilerle çakışıp çakışmadığına da bakar.
if ( !$type )
{
$type = "";
}
$upload = wp_upload_bits( $filename, $filetype, @dosya_indir( $url ) ); // gelen veriler ile upload klasöründe dosya oluştur
// file_get_contents() fonksiyonuna sahibiz. İçerisine yazazacağımız ilk parametredeki adrese girip kaynağı bir değişkene yüklememizi ya da ekrana yazdırmamızı sağlar.
if ( !empty( $upload['error'] ) )// upload dizisi boş ise
{
return "Resim eklenemedi!<br />Hata: ".$upload['error']."<br />"; // ekrana bu hatayı döndür.
}
$neyim = $upload['file']; // $neyim değişkeni içinde "/home/flyklmva/public_html/wp-content/uploads/2016/11/teknoday-random-rakam.jpg" var.
$attachment = array(
"guid" => $upload['url'], //http://www.teknoday.com/wp-content/uploads/2016/11/teknoday-562726.jpg
"post_mime_type" => $type, // boş
"post_title" => $bas, // boş
"post_content" => "", // boş
"post_type" => "attachment", // attachment
"post_parent" => $pid // boş
);
require( ABSPATH."wp-admin/includes/image.php" ); // image.php deki kodlarımızı burada require fonksiyonuyla çalıştırıyoruz. ABSPATH sabiti wp’nin kurulum dizinini tanımlıyor.
$attach_id = wp_insert_attachment( $attachment, $neyim, $pid ); //Bu fonksiyon medya kütüphanesi içine bir ek ekler.
$attach_data = wp_generate_attachment_metadata( $attach_id, $neyim ); //Bu fonksiyon, bir görüntü eki için meta üretir. Aynı zamanda küçük bir resim ve tanımlanan boyutlarına göre görüntü eki ve diğer ara boyutlarını oluşturur
wp_update_attachment_metadata( $attach_id, $attach_data ); // Bir ekin için meta güncellemesi yapar .
add_post_meta( $pid, "_thumbnail_id", $attach_id, true ); // Özel alan ekler.
$nane = $neyim;
return $nane;
}function dosya_indir($adres,$ad)
{
if (@!extension_loaded(curl)) {
die("Extension yuklu degil socket deneyebilirsin");
}
$ch = curl_init("$adres");
if (!$ch) {
die("Curl oturumu baslatamadim..");
}
curl_setopt ($ch, CURLOPT_TIMEOUT, "50");
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = curl_exec($ch);
curl_close($ch);
// baglantiyi kapa
return $data;
}