Sorun görüntü kaydetmek için alıyorum

4 Cevap php

Ben php kullanarak dinamik bir görüntü oluşturma. Ben gitmek ve ilk dosyayı yaparsanız görüntü oluşturulur ediliyor. Ben elle dosya oluşturmak yoksa Ancak, o zaman aşağıdaki hatayı alıyorum.

Uyarı: imagegif () [function.imagegif]: hattında 144 / www / vhosts / yourraceresults.com / htdocs / deneme / TextToImage.inc.php yazma için 'filename2.png' açılamıyor

Örnek:

public function SaveTextAsPng($fontSize, $x, $y, $textContent, $fileName='image'){
	imagestring($this->image, $fontSize, $x, $y,  $textContent, $this->text_color);
	return imagepng($this->image, "/www/vhosts/yourraceresults.com/htdocs/admin/trial/images/".$fileName.".png");
}

$ TextToImage-> SaveTextAsPng (10, 11,11 ', fakeinfo', 'dosyaadı2');

4 Cevap

Çıkış klasörü (bunu yaratmak zorunda bu durumda) yoktur, ya da çıktı klasörüne yazma izniniz yok ya. Bunu düzeltmek için:

  • Eğer bir kabuk kullanıyorsanız:

    chmod 777 / www / vhosts / yourraceresults.com / htdocs / deneme

  • Eğer bir FTP istemcisi kullanıyorsanız:

    Doğru, "deneme" klasörüne tıklayın "chmod", "hak", "izinler" (belki de "özellikleri") adlı bir şey aramak, o zaman alternatif, bunu her izin vermek veya chmod değerini 777 girin.

Bu web kullanıcı (apache, www, ...) size yazmaya çalıştığınız klasörde yazma izinlerine sahip değil gibi görünüyor. Dosya zaten varsa Veya, bu dosya için yazma izni yok.

Edit: Changing the permissions

Supposing you are on a linux like system with an apache web-server, ilk sizin web sunucusunun çalışmakta olduğu kullanıcı olarak öğrenmek gerekir. Sen sunucuda bir komut kabuğu (ssh) almak için ve o zaman muhtemelen aşağıdaki komutu yazarak web sunucusu kullanıcıyı görebilirsiniz gerekir:

$ ps aux | grep httpd

Listesinde, ilk sütunda adı ile çalışan tüm apache işlemleri göreceksiniz.

Kullanıcının web kullanıcı apache olduğunu varsayalım, şimdi bu dizinde apache yazma izinlerini vermek gerekir. Sen apache grubu değişen ve bu grup için yazma izinleri vererek veya apache dizinin sahipliğini değiştirerek yapabilirsiniz. Diyelim grubu değiştirmek istediğinizi varsayalım:

$ chgrp apache /www/vhosts/yourraceresults.com/htdocs/trial

Sahibi ve grup kullanıcılar (apache) yazma izinleri verin:

$ chmod 775 /www/vhosts/yourraceresults.com/htdocs/trial

Disclamer: Bu hızlı bir çözümdür, ama güvenliği hakkında çok şey bilmiyorum, yorumlarınızı bekliyoruz!

Düzgün çıktı dir haklarını setted var mı? Ben web sunucusu (ve onunla php) hedef klasöre yazamaz sanıyorum.

Bu komut dosyası bu dizinde yazma izinlerini ihtiyacı görünüyor. Bu izinleri değiştirmek için kolay bir yolu FTP üzerinden giriş ve FTP istemcisi izinlerini değiştirmektir. Eğer bir "İzinler" veya "Dosya Nitelikleri" (FileZilla) olarak adlandırılan klasör ya da buna benzer bir şey sağ tıkladığınızda (en azından birkaç denedim) çoğu FTP istemcileri bir seçenek sunuyoruz. Bu farklı izinler onay kutularını bir iletişim göstermelidir; yazmak için en azından Sahibi izni vermek emin olun. Bir * nix host üzerinde iseniz, dizine gidin ve chmod 755 sorunu gerekir. izinleri değiştirmek için.

EDIT: chmod 777. 755 işe yaramazsa, size en izinleri verecektir.