MadDog23 Ответов: 2

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


Код работает, если в имени файла нет пробелов. Первоначально ссылка будет содержать только список серверов и общих имен, а имя файла будет удалено, так как в нем есть пробелы. Это было исправлено с помощью path.replace. Таким образом, теперь ссылка отображается правильно, однако при нажатии на ссылку файл не будет загружаться правильно, если %20 не будет преобразован обратно в пробелы.

Итак, как я могу заменить пробелы на %20, чтобы ссылка отображалась правильно, но при этом %20 должен быть заменен обратно на пробелы, когда пользователь нажимает на ссылку?

Экс. \\Сервер\общая_папка\мой file.docx хотел привести ссылку, чтобы только отобразить файл://сервер/ресурс, который делает ссылку в негодность.

Добавление части replace привело к отображению ссылки file://Server/Share/my%2520file.docx но при нажатии на ссылку я получаю сообщение "не может быть отображено". Если я вручную заменю %2520 обратно на пробел, то диалоговое окно открыть/сохранить появится, как и ожидалось.

Опять же, процесс работает нормально, если имя файла не содержит пробелов.

К вашему сведению, это происходит в интрасети, и в настоящее время я использую IE.

Что я уже пробовал:

<pre> string Path = "\\\\server\\share\\" + ddlDept.SelectedValue + "\\" + ddlWI.SelectedValue;
            if (File.Exists(Path))
            {
                Path = Path.Replace(" ", "%20");
                Label1.Text = "Click on this link to retrieve your file, <a href=" + Path + ">ClickMe</a>";
            }

Dotnet_Dotnet

сэр просто предоставьте атрибут загрузки тега если ваш путь является currect
Этикетка 1.Text = "нажмите на эту ссылку, чтобы получить свой файл, С Clickme";

2 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Возможно, это слишком очевидно, но нет никакого правила, которое говорит, что путь для ссылки и текст, который она отображает, должны быть идентичны (или иметь какое-либо отношение друг к другу).

Таким образом, создайте ссылки со значением ссылки, в то время как вы помечаете ссылку с удобочитаемой версией.


Рейтинг:
2

Richard Deeming

Окружите значение атрибута кавычками:

string Path = "\\\\server\\share\\" + ddlDept.SelectedValue + "\\" + ddlWI.SelectedValue;
if (File.Exists(Path))
{
    Label1.Text = "Click on this link to retrieve your file, <a href=\"" + Path + "\">ClickMe</a>";
}

NB: Пользователь сможет получить доступ к ссылке только в том случае, если он находится в той же сети, что и веб-сервер.