web-gelistirme-sc.com

image_style_url resim oluşturmuyor

Yönetici arayüzünden eklediğim bir resmin küçük resmini almak için image_style_url kullanıyorum.

// $foo->field_picture['und'][0]['uri'] has value public://foo.jpg
image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']);

API, URL istendiğinde resmin oluşturulacağını belirtir. Ancak, sayfayı ziyaret ederken görüntü gösterilmez (404). İşlevden döndürülen URL iyi biçimlendirilmiş gibi görünüyor, ancak dosya oluşturulmamış.

'Foo-thumb' klasörü genel veri klasöründedir ve dosya izinlerinin TAMAM olması gerekir. Görüntü önbelleğini temizlemeyi denedim (drupal image-flush foo-thumb) ama yine de sonuç yok.

Herhangi bir fikir?

11
Bart

Gönderen: https://drupal.org/drupal-7.20-release-notes

Ayrıca, standart image_style_url () API işlevini kullanmadan programlı olarak bir görüntü türevine bağlantı oluşturan kodlar, görüntü dosya sisteminde zaten mevcut değilse, artık gerekli belirteç bulunmayacağından URL.

Bunun yerine böyle bir şey yapabilirsiniz;

$image_uri      = $node->field_image[LANGUAGE_NONE][0]['uri']; // or any public://my_image
$style          = 'my_style';
$derivative_uri = image_style_url ($style, $image_uri);
$success        = file_exists($derivative_uri) || image_style_create_derivative(image_style_load($style), $image_uri, $derivative_uri);

$new_image_url  = file_create_url($derivative_uri);
22
Matthieu Gadrat

Yaygın bir hata, URI'lerin düzgün biçimlendirilmemesidir. URI parametrenizin önüne public://.

Kötü Uygulama

$imageUrl = image_style_url('style_name', 'myimage.jpg');
$imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['filename']);

Bu, stil görüntüsüne (resim belirteciyle) bir URL verir, ancak daha önce oluşturulmadığında stilize bir görüntü oluşturmaz.


İyi pratik

$imageUrl = image_style_url('style_name', file_build_uri('myimage.jpg')); // changes to 'public://myimage.jpg'
$imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['uri']);

Bu, yukarıdaki gibi tarz bir URL çıkarır ve mevcut değilse tarz bir görüntü oluşturur.

7
timofey.com

Genel dosya sistemi yolu yanlıştı.

1
Bart
$fid = file_load($field_yuorfield_fid);          
$image_uri = image_style_url('yuor_style', $fid->uri);
fopen($image_uri, 'r');

burada html oluşturmak için url kullanabilirsiniz

1
Basil

Başka bir seçenek tema işlevini kullanmaktır.

$img = theme('image_style', array('style_name' => 'your_image_style_machine_name', 'path' => $node->field_image['und'][0]['uri']));

URL'yi döndürmek yerine, img için html'yi döndürür.

1
rparker

Sahip olduğundan emin ol foo-thumb stili, admin/config/media/image-styles.

image_style_url parametresinin ilk parametreleri bir klasör adıdır , klasörü değil adı.

0
Sang Le Thanh

Görüntüyü görüntülemeye çalışırken bir 404 alırsanız, görüntü stili adının doğru olmaması olasılığı vardır. Benim durumumda, Görüntü Stilleri'nde görünen stil adı, stil adının makine adı değildi. Stilin üzerine geldiğinde url, stil adının makine adını görüntüler. Ya makine adına değiştirin ya da akımı silin ve gerekli adla yeniden oluşturun.

0
user28555