2011-09-18 15 views
0

我有具有接收表示圖像並將其存儲在服務器文件系統中的base64編碼串的目的,WCF RESTful服務,其方式的方式類似於HttpPostedFile如何它用下面的代碼(文件是一個HttpPostedFileBase變量):圖像到HttpPostedFileBase - 或者存儲在服務器文件系統中的圖像文件

file.SaveAs(Server.MapPath("..\\Content\\UploadedImages\\") + id + file.FileName.Replace(" ","")); 

到目前爲止,我沒有任何問題,從創建以base64字符串一個爲System.Drawing.Image對象。但是,我似乎無法創建一個HttpPostedFileBase變量,它可以使用此圖像並調用放在代碼中的方法?

有沒有什麼辦法,我能做到嗎?根據this page,我不能,所以真正的問題將是:

如何保存一個System.Drawing.Image文件在我的服務器的文件系統,所以我可以保留對文件的引用數據庫?它甚至有可能嗎?

在此先感謝您的時間! :d

+0

你收到任何錯誤訊息? – jgauffin

+0

不,但達林以下的答案對我來說工作得很好。感謝jacauffin preocupation! :) –

+0

絕對不會在ASP .NET文件路徑中使用「..」......它可能會導致您受到攻擊,成爲Velociraptor和/或在您的代碼中暴露嚴重的安全漏洞。作爲一般規則,您應該始終使用「〜/ Path」(〜表示應用程序的根目錄)語法。 –

回答

3

假設你有一個Image情況下,你可以像這樣將它保存在服務器上UploadedImages文件夾內:

using (Image image = ...) 
{ 
    var imagesFolder = Server.MapPath("~/Content/UploadedImages"); 
    var filename = Path.Combine(imagesFolder, id, file.FileName.Replace(" ","")); 
    image.Save(filename); 
} 
+0

好吧,我會盡量檢查出來。感謝Darin的回答! :D –

+0

儘管Server.MapPath不適合我,但我發現了一種解決方法(我手頭上有服務器路徑),其餘代碼工作正常。謝謝達林! :d –

相關問題