Как отправить исходный путь к файлу и имя файла без отправки самого файла в ASP.NET? - PullRequest
0 голосов
/ 09 марта 2009

Как получить элемент управления в форме ASP.NET, который просматривает файлы так же, как и элемент управления FileUpload, но вместо отправки всего файла он отправляет только путь, по которому был найден файл (с исходным имя файла)?

1 Ответ

0 голосов
/ 09 марта 2009

Вот обходной путь, который я сделал, следуя инструкциям следующего сообщения на форуме: http://forums.asp.net/p/1189182/2040139.aspx#2040048

<asp:FileUpload ID="File1" runat="server" onchange="GetFileName();"/> 
<asp:Button ID="Submit" runat="server" Text="Submit" OnClientClick="DisableFileSelector();" />
<asp:HiddenField id="txtFileName" runat="server" />

<script language="javascript" type="text/javascript">
    function GetFileName()
    {
        document.getElementById('<%=txtFileName.ClientID %>').value = document.getElementById('<%=File1.ClientID %>').value;
    }
    function DisableFileSelector() {
        document.getElementById('<%=File1.ClientID %>').disabled = true;
    }
</script>

Конечно, это работает, только если включен JavaScript. Если JavaScript отключен, форма отправит файл, но вы все равно сможете сохранить функциональность сайта, добавив следующий код перед первым использованием txtFileName.

if (File1.HasFile)
{
    txtFileName.Value = File1.PostedFile.FileName;
}
...