- Път до снимка
12
WT форуми -> PHP MySQL ASP.NET -> Път до снимка
Създайте нова тема Напишете отговор 
Автор Съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 81
Bonus: 174
Мнения: 1702
Мнение 11/03/2018 8:53 pm     Път до снимка Отговорете с цитат


Здравейте, на хостинга на който съм качил сайта имам папка uploads, в която качвам снимките. Тази папка се намира извън public_html. Въпросът ми е какъв път трябва да подам за да визуализирам снимките?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 129
Bonus: 258
Мнения: 792
Мнение 11/03/2018 10:10 pm      Отговорете с цитат


Едит:

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

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

И в този файл просто сложи readfile($file) - пътя до снимката с релативен или абсолютен път (realpath) и готово ^^ Idea Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 348
Bonus: 694
Мнения: 2630
Мнение 11/03/2018 10:13 pm      Отговорете с цитат


Или ако можеш направи symlink между uploads и public_html/uploads.

Това може да е полезно за симлинк на шернат хостинг: https://www.namecheap.com/support/knowledgebase/article.aspx/9561/29/how-to-create-a-symbolic-link-in-cpanel
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
vinsbg
Редовен
Редовен

Регистриран на: 28/01/2009 2:21 pm

Support: 51
Bonus: 87
Мнения: 2570
Мнение 12/03/2018 6:57 am      Отговорете с цитат


Сигурно не е най-коректния начин, но аз правя нещо такова ( лайт версия ):


// 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 Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 129
Bonus: 258
Мнения: 792
Мнение 12/03/2018 9:19 am      Отговорете с цитат


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 Question


Мога да си представя как изглежда 2мб изображение в текст в атрибут навряно Very Happy Но ако изисква по-малко ресурс - защо да не Idea Question
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
vinsbg
Редовен
Редовен

Регистриран на: 28/01/2009 2:21 pm

Support: 51
Bonus: 87
Мнения: 2570
Мнение 12/03/2018 9:20 am      Отговорете с цитат


Това е друга тема Smile .. моите снимки са под 1 мегабайт.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 81
Bonus: 174
Мнения: 1702
Мнение 12/03/2018 11:01 am      Отговорете с цитат


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

PHP code:

<?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; ?>
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 348
Bonus: 694
Мнения: 2630
Мнение 12/03/2018 11:19 am      Отговорете с цитат


Предлагах да изплзваш symlink на самия хостинг.

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


В статията по-горе има начин как да се направи, ако имаш достъп през SSH. Също така ако нямаш такъв, през cronjob модула на CPanel.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 81
Bonus: 174
Мнения: 1702
Мнение 12/03/2018 12:05 pm      Отговорете с цитат


Добавям го през Cron Job но нищо не се случва. Пробвах два пътя.

home/sitename/uploads home/sitename/public_html/uploads
и
home/sitename/uploads /uploads
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 129
Bonus: 258
Мнения: 792
Мнение 12/03/2018 12:11 pm      Отговорете с цитат


*Припява* Do it like they do on the discovery channel Question Very Happy Very Happy

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

И в този файл просто сложи readfile($file) - пътя до снимката с релативен или абсолютен път (realpath) и готово ^^ Idea Question
Idea Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 119
Bonus: 231
Мнения: 3065
Мнение 12/03/2018 3:00 pm      Отговорете с цитат


joTunkiq написа:
Едит:

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

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

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

Question
Преди време съм виждал вместо htaccess да се ползва само PHP и GET без да се налага преобразуване на пътя. Абе варянти на предложението ти бол.

PHP code:

<?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;
}
}
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 81
Bonus: 174
Мнения: 1702
Мнение 12/03/2018 3:15 pm      Отговорете с цитат


Не мога да го разбера този пример с image.php файл. Аз писах че системата е mvc.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети