Подтвердить что ты не робот

Синтаксис href: нормально ли иметь место в имени файла

всегда была моя практика, когда когда-либо я использую изображения, я называю их как walls_ico, bu_hover

поэтому, когда я даю пути, они идут как

<img src="images/walls_ico.ico" />
<img src="buttons/bu_hover.png" />

UNTIL теперь, когда я нахожусь в проекте, где пользователи загружают файлы...

Я задавался вопросом, нормально ли иметь пробелы между именем файла и папок, например

<img src="buttons/bu hover.png" />
4b9b3361

Ответ 1

Атрибут src должен содержать действительный URL. Поскольку символы пробела не разрешены в URL-адресах, вы должны кодировать их.

Вы можете написать:

<img src="buttons/bu%20hover.png" />

Но не:

<img src="buttons/bu+hover.png" />

Поскольку, как верно указывает DavidRR в своем комментарии, символы пробела в кодировке + действительны только в части строки запроса URL-адреса, а не в самом пути.

Ответ 2

Цитата HTML5, чтобы назад Фредерик, что пробелы не допускаются:

http://www.w3.org/TR/html5/links.html#attr-hyperlink-href:

Атрибут href для элементов a и area должен иметь значение, которое является допустимым URL, потенциально окруженным пробелами.

Определение "действительный URL" указывает на: http://url.spec.whatwg.org, который определяет URL-коды кодов https://url.spec.whatwg.org/#url-code-points:

Точками URL-адреса являются ASCII-буквенно-цифровые, "!", "$", "&", "'", "(", ")", "*", "+", "," , "," . "," / "," : "," ; "," = "," ? "," @ "," _ "," ~ "и кодовые точки в диапазонах U + 00A0 до U + D7FF, U + E000 - U + FDCF, U + FDF0 - U + FFFD, U + 10000 - U + 1FFFD, U + 20000 - U + 2FFFD, U + 30000 - U + 3FFFD, U + 40000 - U + 4FFFD, U + 50000 - U + 5FFFD, U + 60000 - U + 6FFFD, U + 70000 - U + 7FFFD, U + 80000 - U + 8FFFD, U + 90000 - U + 9FFFD, U + A0000 - U + AFFFD, U + B0000 - U + BFFFD, U + C0000 - U + CFFFD, U + D0000 - U + DFFFD, U + E1000 - U + EFFFD, U + F0000 - U + FFFFD, U + 100000 - U + 10FFFD.

Затем спецификация использует термины URL-адреса URL-адресов для различных частей алгоритма синтаксического анализа как:

Если c не является кодовой точкой EOF, а не точкой URL-адреса, а не "%", ошибка синтаксического анализа.

для схемы, полномочий, относительного пути, состояния запроса и состояний фрагмента: так что весь URL.

Ответ 3

Если вы используете PHP

затем узнайте этот код

$result = mysqli_query($con,$sql);
    //echo $ip."<br />";REGEXP
    //echo $name."<br />";
    echo "<table border=2px style='border-radius=20px;' align=center><tr>
    <th>Document ID</th>
    <th>Document Name Type</th>
    <th>Download Documents</th>
    </tr>";//<th>Project Document Type</th>
    while($row = mysqli_fetch_array($result)) {
        $path1=$row['FOLDERNAME'] .'/'. $row['FILENAME'] .'.'. $row['DOCTYPE'];
        $path=str_replace(" ", '%20', $path1);
        echo "<tr>";
        echo "<td>" . $row['DocID'] . "</td>";
       // echo "<td>" . $row['PROJDOCTYPE'] . "</td>";Thank you. Your Apple ID is now ready for use.
        echo "<td>" . $row['DOCNAME'] . "</td>";
        echo '<td><a href=Tender/'.$path.'>'.$row['DOCNAME'].'</a></td>';
        echo "</tr>";
    }
    echo "</table>";

    mysqli_close($con);

Ответ 4

<body>
<img src="file:///C|/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/Water lilies.jpg"
</body>

пробелы будут разрешены только при работе на локальных хостах