簡體   English   中英

獲取選定文件的路徑asp.net MVC C#

[英]Get selected file's path asp.net mvc c#

我找不到任何地方如何在asp.net mvc中獲取選定文件的路徑(我正在使用C#)? 我需要將文件發送到服務器,所以我只需要獲取它的路徑,然后使用

             Image image = Image.FromFile(path);

但是獲取我發現的路徑的唯一方法是:

            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);

但我不想保存我的文件。 如果我用

Path.GetFullPath

我在II Express文件夾中獲取路徑,我無法使用此路徑。 那么,有什么方法可以獲取所選文件的路徑?

如何選擇文件:

<form id="Form1" method="post" enctype="multipart/form-data" runat="server">
<input type=file id=File1 name=file value="Browse"  runat="server" dir="rtl" aria-selected="false" />
<br>
<input type="submit" id="Submit1" value="Upload" runat="server" aria-haspopup="False" dir="rtl" />

似乎您正在嘗試獲取客戶端上的文件路徑,並將其“讀取”到圖像對象-這是不可能的,因為服務器無法訪問客戶端的文件系統。

通常,文件上傳如下所示:

<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<div>
    <input id="File1" type="file" runat="server" />
    <input type="submit" value="submit" runat="server" onserverclick="Btn1_ServerClick" />
</div>
</form>

服務器端是:

protected void Btn1_ServerClick(object sender, EventArgs e)
{
    var file = File1.PostedFile;
    var image = System.Drawing.Image.FromStream(file.InputStream);
}

這是經典的ASP.NET,但是如果您使用MVC.NET並訪問控制器操作,則它非常相似(控制器將從表單中接收某種HttpPostedFileBase作為參數)

您收到服務器上的位置路徑是服務器和框架的正確行為。
通常,當我們指的是從客戶端到服務器的單向通信時(如http請求(例如,get或post)發生的通信),服務器無法訪問客戶端的文件系統(硬盤等)。 通常,通過選擇客戶端文件系統上的文件將數據上傳到服務器(文件)是發送數據(文件的副本),而不是發送文件的路徑。 服務器不會通過使用客戶端的路徑來啟動獲取文件形式的客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM