2016-08-21 3 views
3

У меня проблема с тем, что url моего файла слишком длинный в моем php-скрипте.PHP file download Слишком длинный путь

На данный момент Путь моего файла:

website.tld/var/www/vhosts/my_hostname/website/page/downloads/file.mp3 

Но я хочу, чтобы сократить его так, чтобы его путь, начиная с моего сайта каталога, и это работает URL.

website.tld/page/downloads/file.mp3 

код, который создает этот путь заключается в следующем:

echo "<td><a href=\"".$file->get_downloads_folder().'/'.$f["name"]."\" download > ".$f["name"]."</a></td>"; 

$ файл получает свое значение из этой функции:

public function get_downloads_folder() 
    { 
      $path = $this->config["outputFolder"]; 
      if(strpos($path , "/") !== 0) 
      { 
        $path = dirname(__DIR__).'/' . $path; 
      } 
      return $path; 
    } 

Это код из проекта GitHub Youtube -dl-WebUI (code here) (function here), но для меня это не работает.

Я читал, что вы можете удалить части строки, которые вам не нужны, но я не знаю, как это реализовать, потому что я никогда раньше не работал с php.

+0

Добро пожаловать в переполнение стека. Можете ли вы мотивировать свой вопрос? Почему путь загрузки слишком длинный? И пока вы думаете об этом, сначала проверьте, может ли указанный вами путь быть действительным (я думаю, что он не может). Наконец, пожалуйста, сообщите нам, где ваш скрипт находится на пути. –

ответ

1

Существует различие между путями и URL. При создании ссылки вы должны использовать сокращенную форму для URL, так что в основном:

echo "<td><a href=\"".$file->config["outputFolder"].'/'.$f["name"]."\" download > ".$f["name"]."</a></td>"; 

Вы, возможно, потребуется создать геттер, если конфигурация является частным.

Но внутренне вы все равно должны использовать полный путь, который, кажется, выполняется правильно.

+0

Спасибо, это была линия, которую я искал. – user6679493

0

Я думаю, что вы пытаетесь загрузить в окно, ЧИТАТЬ :)

Why does the 260 character path length limit exist in Windows?

Изменить веб-корень более или настройки вашей службы в убунту с VMware:) ...

+0

Путь не слишком длинный с точки зрения символов, но это просто неправильный путь. Я получаю рабочую ссылку на странице, но путь загрузки неверен. – user6679493

0

Проблема было то, что выход был полным путем к каталогу загрузки, но единственной необходимой мне частью был точный каталог.

Вместо «/ var/www/vhosts/my_hostname/website/page/downloads /», который был задан $ file, теперь он дает только «загрузки» для создания URL-адреса.

Теперь он работает.

Смежные вопросы