日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

使用mvc模式读取服务器上的文件,关于C#:如何使用asp.net MVC应用程序从服务器上的网络路径读取...

發(fā)布時間:2024/9/3 asp.net 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用mvc模式读取服务器上的文件,关于C#:如何使用asp.net MVC应用程序从服务器上的网络路径读取... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我已經(jīng)在運(yùn)行.net MVC應(yīng)用程序的Web服務(wù)器上設(shè)置了到另一臺用于存儲上載文件的服務(wù)器的網(wǎng)絡(luò)路徑。為了允許通過應(yīng)用程序?qū)⑽募蟼鞯骄W(wǎng)絡(luò)路徑,我修改了IIS中的應(yīng)用程序池,以便該應(yīng)用程序有權(quán)上傳到它。這一切都很好。

為了使應(yīng)用程序在加載頁面時能夠讀取文件,我在IIS中創(chuàng)建了一個虛擬目錄,該目錄現(xiàn)在作為IIS中該站點(diǎn)的文件系統(tǒng)的一部分出現(xiàn)。然后,如何在我的應(yīng)用程序中訪問并為此位置生成路徑,以便可以將該路徑傳遞給DB,然后將圖像稍后加載到頁面上?

假設(shè)我的路徑是:

虛擬路徑為useruploads / image.jpg

如何讓我的應(yīng)用程序識別我創(chuàng)建的虛擬路徑?

或者,可以在IIS中刪除虛擬目錄,是否可以讓我的應(yīng)用程序直接訪問Web服務(wù)器上的網(wǎng)絡(luò)路徑?

編輯-要添加到上面,我在iis中映射了網(wǎng)絡(luò)路徑,它在iis中顯示在我的站點(diǎn)下,如下所示:

然后,我想使用?/ useruploads / file.jpg這樣的地址從asp.net mvc應(yīng)用程序內(nèi)的此目錄中讀取。如果我可以讓我的應(yīng)用程序識別該虛擬目錄,那么我將能夠從中讀取該目錄。

編輯2號

好的,我認(rèn)為我已經(jīng)確定了問題的性質(zhì),并且更加清楚了?;旧?#xff0c;當(dāng)我在網(wǎng)頁上鏈接到該文件時,我訪問的文件就很好。但是我在Chrome中收到消息"不允許加載本地資源"。我認(rèn)為這只是Web瀏覽器不允許我加載圖像的問題,因?yàn)轫撁嫔鲜褂帽镜氐刂?網(wǎng)絡(luò)路徑)引用了該圖像。因此,我現(xiàn)在試圖在應(yīng)用程序中創(chuàng)建一個操作以使用指向我的操作的Url.Action加載圖像,然后將id轉(zhuǎn)換為圖像流,例如

在我看來:

其中Mode.image類似于folder image.jpg。

行動:

public FileResult image(string id)

{

var dir = @"\\SERVERNAME\upload";

var path = Path.Combine(dir, id);

return base.File(path,"image/jpg");

}

"為了讓應(yīng)用程序在加載頁面時讀取文件,我在IIS中創(chuàng)建了一個虛擬目錄,該目錄現(xiàn)在作為IIS中該站點(diǎn)的文件系統(tǒng)的一部分出現(xiàn)" –您可以解釋一下;為什么要為文件存儲區(qū)創(chuàng)建虛擬目錄?您是否在從Web HDD或其他服務(wù)器HDD的ASP.net MVC應(yīng)用程序中讀取文件時遇到問題?

Web服務(wù)器上的網(wǎng)絡(luò)路徑來自另一臺服務(wù)器,因此另一臺服務(wù)器HDD作為Web服務(wù)器上的網(wǎng)絡(luò)路徑。我可以使用地址\ serverIP useruploads上傳到它,但是我似乎無法使用相同的地址路徑從中讀取信息。我需要一個應(yīng)用程序可以識別的路徑,因此嘗試在iis中為該應(yīng)用程序添加虛擬目錄,然后在這里詢問是否有我的應(yīng)用程序可以查看虛擬目錄的方式,例如?/ useruploads / file.jpg,所以我可以在應(yīng)用程序中這樣引用它

我應(yīng)該說,當(dāng)我說讀它時,是指使用通過應(yīng)用程序的鏈接將圖像加載到html頁面上。因此,應(yīng)用程序調(diào)用\ serverIP useruploads image.jpg作為數(shù)據(jù)庫中圖像的地址,但這會導(dǎo)致不允許在chrome中加載本地資源錯誤,并且不會在其他任何瀏覽器中加載。我真正需要的是至少將該網(wǎng)絡(luò)路徑映射到應(yīng)用程序可以識別的虛擬地址。

添加新的VD并非可行的方法-您需要能夠使用ASP.net MVC應(yīng)用程序的應(yīng)用程序池標(biāo)識用戶帳戶讀取其他服務(wù)器的UNC路徑。這是一種非常常見的情況-您只需要分配正確的權(quán)限。

很公平。我確實(shí)有權(quán)使用在應(yīng)用程序池中設(shè)置的帳戶來讀取該文件夾,我必須對其進(jìn)行設(shè)置才能上傳到該文件夾???,F(xiàn)在仔細(xì)檢查文件夾,我可以看到我正在使用的帳戶對文件夾的讀/寫等具有完全控制權(quán)。因此權(quán)限似乎不是問題。

使用server.MapPath()將相對URL映射到應(yīng)用程序中的物理路徑。

您好Codeunderflow,我不確定如何提供幫助,我的問題是該位置不是我的應(yīng)用程序中的物理路徑,而是該應(yīng)用程序所在的Web服務(wù)器上的物理路徑。我可以引用該物理位置很好,但是由于它是服務(wù)器上的本地路徑,因此無法在瀏覽器中加載。因此,我需要以某種方式偽造其位置作為應(yīng)用程序的一部分,或者做我認(rèn)為已經(jīng)解決的事情,即向我的應(yīng)用程序中的控制器動作發(fā)送一個ID,該動作從網(wǎng)絡(luò)路徑獲取文件并將圖像流式傳輸?shù)竭@一頁。

@Rob我建議您在此周圍放一些調(diào)試代碼(1)您可以枚舉UNC驅(qū)動器中的文件嗎? (2)您要在枚舉中查找的文件嗎? (3)當(dāng)您嘗試以只讀方式打開文件時,您得到一個錯誤,以及確切的錯誤代碼是什么(即DOS錯誤2、5等)。您如何確定您的應(yīng)用程序池帳戶具有正確的權(quán)限并且可以看到該文件?通常,應(yīng)用程序池帳戶是非交互式的,您不能使用這些憑據(jù)登錄。

您好菲利普,我已經(jīng)更新了我的問題,因?yàn)槲艺J(rèn)為我已經(jīng)確定了我的問題,這僅僅是因?yàn)榧词刮铱梢栽L問該地址,我也無法使用本地地址加載圖像,因?yàn)闉g覽器不允許這樣做。地址必須是某些東西。因此,我正在嘗試我在問題中所說的,如果您能提供任何幫助,將不勝感激。

所以最后我的問題是我無法將圖像放置在頁面上,因?yàn)樗褂玫氖欠?wù)器上的本地地址,出于安全原因,該地址在瀏覽器中是不允許的。 為了使用網(wǎng)絡(luò)路徑,我不得不使用

我認(rèn)為此操作:

public FileResult image(string id)

{

var dir = @"\\SERVERNAME\upload";

var path = Path.Combine(dir, id);

string contentType = MimeMapping.GetMimeMapping(path);

return base.File(path, contentType);

}

然后,這將圖像返回到頁面,盡管這意味著該圖像不會被緩存。

總結(jié)

以上是生活随笔為你收集整理的使用mvc模式读取服务器上的文件,关于C#:如何使用asp.net MVC应用程序从服务器上的网络路径读取...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。