Път до снимка

teroristd

Registered
Здравейте, на хостинга на който съм качил сайта имам папка uploads, в която качвам снимките. Тази папка се намира извън public_html. Въпросът ми е какъв път трябва да подам за да визуализирам снимките?
 
Едит:

Направи си един файл image.php (примерно) и само подавай името на снимката и той да ти е входящата точка. С директен линк да не става.

Пример : Image.php?image=test.png (разбира се може и да го разкрасиш леко с htaccess)

И в този файл просто сложи readfile($file) - пътя до снимката с релативен или абсолютен път (realpath) и готово ^^ :idea: :?:
 
Или ако можеш направи symlink между uploads и public_html/uploads.

Това може да е полезно за симлинк на шернат хостинг: https://www.namecheap.com/support/knowledgebase/article.aspx/9561/29/how-to-create-a-symbolic-link-in-cpanel
 
Сигурно не е най-коректния начин, но аз правя нещо такова ( лайт версия ):

Код:
// query с което селектирам снимки от базата

for ($i=0; $row = $result->fetch(); $i++) {
     
      $_file = $row['image'];

      $base64image = 'data:image/png;base64,'.base64_encode(file_get_contents('/home/MYNAME/uploads/'.$_file));

      echo '<a class="popup-link" href="'.$base64image.'"><img src="'.$base64image.'"> </a>';
}
Аз си ги показвам в админ панел и като цяло не са ми нужни други проверки за файл тайпа, сайз и т.н.

Обаче подкрепям идеята с symlink :?:
 
vinsbg каза:
Сигурно не е най-коректния начин, но аз правя нещо такова ( лайт версия ):

Код:
// query с което селектирам снимки от базата

for ($i=0; $row = $result->fetch(); $i++) {
     
      $_file = $row['image'];

      $base64image = 'data:image/png;base64,'.base64_encode(file_get_contents('/home/MYNAME/uploads/'.$_file));

      echo '<a class="popup-link" href="'.$base64image.'"><img src="'.$base64image.'"> </a>';
}
Аз си ги показвам в админ панел и като цяло не са ми нужни други проверки за файл тайпа, сайз и т.н.

Обаче подкрепям идеята с symlink :?:

Мога да си представя как изглежда 2мб изображение в текст в атрибут навряно :D Но ако изисква по-малко ресурс - защо да не :idea: :?:
 
Ще помоля отново за помощ. За първи път качвам нещо на хостинг и не мога да се оправя. Ето каква ми е постановката. Във вю-то пробвам със symlink и ми дава верния път но пак не излизат снимките. Пробвах и с file_get_contents и readfile и не стана. Явно правя нещо грешно. Само да спомена че системата е mvc.

PHP:
<?php foreach ($this->_image as $value): ?>

<?php
                                            
$target = realpath('../uploads') . DIRECTORY_SEPARATOR . $value['image'];
$link = 'uploads';
symlink($target, $link);
 
?>

<img src="<?php echo readlink($link); ?>

<?php endforeach; ?>
 
Предлагах да изплзваш symlink на самия хостинг.

Код:
ln -s пътя/до/uploads пътя/до/public_html/uploads

В статията по-горе има начин как да се направи, ако имаш достъп през SSH. Също така ако нямаш такъв, през cronjob модула на CPanel.
 
Добавям го през Cron Job но нищо не се случва. Пробвах два пътя.

home/sitename/uploads home/sitename/public_html/uploads
и
home/sitename/uploads /uploads
 
*Припява* Do it like they do on the discovery channel :?: :D :D

Пример : Image.php?image=test.png (разбира се може и да го разкрасиш леко с htaccess)

И в този файл просто сложи readfile($file) - пътя до снимката с релативен или абсолютен път (realpath) и готово ^^ Idea Question
:idea: :D
 
joTunkiq каза:
Едит:

Направи си един файл image.php (примерно) и само подавай името на снимката и той да ти е входящата точка. С директен линк да не става.

Пример : Image.php?image=test.png (разбира се може и да го разкрасиш леко с htaccess)

И в този файл просто сложи readfile($file) - пътя до снимката с релативен или абсолютен път (realpath) и готово ^^ :idea: :?:
:?:
Преди време съм виждал вместо htaccess да се ползва само PHP и GET без да се налага преобразуване на пътя. Абе варянти на предложението ти бол.

PHP:
<?php
// http:/localhost/image.php?jpg:imagename
if ($_GET) {
	foreach (array_keys($_GET) as $image) {
		list($type,$name) = explode(":",$image);
		switch ($type) {
			case "png" :
			case "jpg" :
				//realpath и  така нататък
				print $name.".".$type;
				break;
		}
	}
}
 
Не мога да го разбера този пример с image.php файл. Аз писах че системата е mvc.
 
teroristd каза:
Не мога да го разбера този пример с image.php файл. Аз писах че системата е mvc.
Тя системата може да е всякаква, но ти ще правиш следното:

<img src="http://domain.com/image.php?png:avatar" />
<img src="http://domain.com/image.php?png:mvcimage" />

Eто така ще викаш примерно изображенията, а естествано се налага да съществува пътя да файла, но как да ти обясня можеш и клас да използваш можеш всякакви начини. Все пак сам си решил да си усложниш живота за да викаш изображенията от външна папка, което не е и наложащо, ако си си оправил правата и филтрирал всички променливи правилно.
 
Я покажи как се отнася url-а към методите тогава.
С някаква конвенция ли е ? Пример: site.com/controoler/method/param1/param2/param3 или друго? Кажи ни това и някой ще ти скалъпи един клас с един метод на бързо - не е нещо сложно. :idea:
 
joTunkiq каза:
Я покажи как се отнася url-а към методите тогава.
С някаква конвенция ли е ? Пример: site.com/controoler/method/param1/param2/param3 или друго? Кажи ни това и някой ще ти скалъпи един клас с един метод на бързо - не е нещо сложно. :idea:

Да точно както си предположил.
 
dakata__92 каза:
teroristd каза:
Не мога да го разбера този пример с image.php файл. Аз писах че системата е mvc.
Тя системата може да е всякаква, но ти ще правиш следното:

<img src="http://domain.com/image.php?png:avatar" />
<img src="http://domain.com/image.php?png:mvcimage" />

Eто така ще викаш примерно изображенията, а естествано се налага да съществува пътя да файла, но как да ти обясня можеш и клас да използваш можеш всякакви начини. Все пак сам си решил да си усложниш живота за да викаш изображенията от външна папка, което не е и наложащо, ако си си оправил правата и филтрирал всички променливи правилно.

Еми направил съм го с външна папка защото не съм предполагал че ще има такива проблеми на хостинга. Всъщност за първи път качвам нещо на хостинг и не знаех какво да очаквам, пък и системата съм я писал под windows а хостинга е на linux :eek: :D . Не че не мога да прехвърля снимките към public_html. Най вероятно накрая точно това ще направя.
 
teroristd каза:
dakata__92 каза:
teroristd каза:
Не мога да го разбера този пример с image.php файл. Аз писах че системата е mvc.
Тя системата може да е всякаква, но ти ще правиш следното:

<img src="http://domain.com/image.php?png:avatar" />
<img src="http://domain.com/image.php?png:mvcimage" />

Eто така ще викаш примерно изображенията, а естествано се налага да съществува пътя да файла, но как да ти обясня можеш и клас да използваш можеш всякакви начини. Все пак сам си решил да си усложниш живота за да викаш изображенията от външна папка, което не е и наложащо, ако си си оправил правата и филтрирал всички променливи правилно.

Еми направил съм го с външна папка защото не съм предполагал че ще има такива проблеми на хостинга. Всъщност за първи път качвам нещо на хостинг и не знаех какво да очаквам, пък и системата съм я писал под windows а хостинга е на linux :eek: :D . Не че не мога да прехвърля снимките към public_html. Най вероятно накрая точно това ще направя.

Ти си чудна личност. Още по-добре за теб е, че си MVC. Създаваш си в рутера път с име примерно image и му поставяш контролера да ти обработва снимките. Така ще си имаш директна легетимна страница описана по правилата на MVC и ще можеш да си я викаш навсякъде в сайта.

В конфигурацията освен примерно index, contacts имаш и image, като в контролера си ще прави операции със стринга от url-то и най-вече ще хардкорнеш реалният път до изображението, като така ще получиш и върнеш връзката към потребителя маскирайки я като вътрешна. :p :D
 

Горе