Получить полный путь к файлу с помощью FileUpload Control - PullRequest
41 голосов
/ 15 июля 2009

Я работаю над веб-приложением, которое использует элемент управления FileUpload. У меня есть файл xls в полном пути к файлу 'C: \ Mailid.xls', который я пытаюсь загрузить.

Когда я использую команду

FileUpload1.PostedFile.FileName 

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

Я также безуспешно пробовал следующие команды:

   System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName);
   Path.GetFileName(FileUpload1.PostedFile.FileName);
   System.IO.Path.GetDirectoryName(FileUpload1.PostedFile.FileName).ToString();
   Convert.ToString(System.IO.Directory.GetParent(FileUpload1.PostedFile.FileName));

Как мне получить полный путь?

Ответы [ 18 ]

2 голосов
/ 29 января 2011

Проверьте это:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="FileUp.aspx.vb" Inherits="FileUp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server"></asp:Label><br />
       <asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <asp:Button ID="Button1" runat="server" Text="Upload" />
    </div>
    </form>
</body>
</html>

Код:

Partial Class FileUp
    Inherits System.Web.UI.Page
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String
        Dim path1 As String
        path = Server.MapPath("~/")
        FileUpload1.SaveAs(path + FileUpload1.FileName)
        path1 = path + FileUpload1.FileName
        Label1.Text = path1
        Response.Write("File Uploaded successfully")
    End Sub
End Class
1 голос
/ 11 февраля 2011

Проверьте этот пост в разделе FileUpload Control

Кроме того, для URLAction для параметра «Включить путь к локальному каталогу при загрузке файлов» установлено значение «Отключить» для зоны Интернета. Это изменение предотвращает утечку потенциально важной информации локальной файловой системы в Интернет. Например, вместо того, чтобы указывать полный путь C: \ users \ ericlaw \ documents \ secret \ image.png, Internet Explorer 8 теперь будет отправлять только имя файла image.png.

Это опция в интернет-безопасности, которая может быть включена

1 голос
/ 23 июля 2015

Это не будет проблемой, если мы используем браузер IE. Это для других браузеров, сохраните файл в другом месте и используйте этот путь.

if (FileUpload1.HasFile)

{

string fileName = FileUpload1.PostedFile.FileName;

string TempfileLocation = @ "D: \ uploadfiles \";

string FullPath = System.IO.Path.Combine (TempfileLocation, fileName);

FileUpload1.SaveAs (FULLPATH);

Response.Write (FullPath);

}

Спасибо

1 голос
/ 17 августа 2010

Я использую IE 8 (на двух разных машинах). Каждый по-прежнему загружает полный локальный путь к файлу. Как предполагает Габриэль, Path.GetFileName (fileUploadControl.PostedFile.FileName), по-видимому, является единственным способом убедиться, что вы получаете только имя файла.

1 голос
/ 19 июня 2012
dim path as string = FileUpload1.PostedFile.FileName

Кстати, я использую Visual Studio 2010. Я не знаю, есть ли разница с другой версией.

0 голосов
/ 15 июля 2009

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

0 голосов
/ 10 марта 2012

В окне «Свойства обозревателя» на вкладке «Безопасность» нажмите настраиваемую кнопку безопасности, есть возможность отправить локальный путь при загрузке какого-либо файла на сервер.

Отключено по умолчанию. Просто включите его.

0 голосов
/ 08 ноября 2011
Path.GetFullPath(fileUpload.PostedFile.FileName);

Извините, вы получите каталог с программным файлом + имя вашего файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...