2011-08-23 1 views
0

MVC를 사용하여 최소한의 액세스로 서버에 파일을 기록하는 방법. 다음 버전의 코드는 도메인을 막히게하므로 적합하지 않습니다.MVC를 사용하여 최소한의 액세스로 서버에 파일을 기록하는 방법

컨트롤러 코드 :

var fileFile = Request.Files["p" + prop.Id]; 
if (fileFile == null) continue; 

string pathFile = AppDomain.CurrentDomain.BaseDirectory + "UploadedFiles"; 
string filenameFile = Path.GetFileName(fileFile.FileName); 

if (filenameFile != null) fileFile.SaveAs(Path.Combine(pathFile, filenameFile)); 

편집을 할 CODE (이 캐시에 파일을 넣어이를 실현할 수있는 경우) :

var에 ordinaryPropertyValue = 새 Catalog.Core.Entities.OrdinaryPropertyValue();

Environment.CurrentDirectory = Environment.GetEnvironmentVariable ("TEMP");

var fileFile = Request.Files [ "File"+ prop.Id]; if (fileFile == null) 계속 진행합니다.

string pathFile = Environment.CurrentDirectory;

fileFile.SaveAs (pathFile);

ordinaryPropertyValue.Value = pathFile;

instance.SetPropertyValue (prop.Id, ordinaryPropertyValue);

+0

"최소 액세스"란 무엇입니까? 우리가 여기서 보안에 대해 이야기하고 있습니까? –

+1

대신'string pathFile = Path.Combine (AppDomain.CurrentDomain.BaseDirectory, "UploadedFiles"); ' –

+0

예, 액세스가 최소라는 의미 - 보안 – revolutionkpi

답변

1

공통 응용 프로그램 데이터 위치를 사용할 수 있습니다 (사용자가 주위를 둘러야 할 경우 % TEMP %보다 좋을 것입니다 - 내 경험에 따라 % TEMP % 폴더를 정리하는 경향이 있습니다) - 모든 사용자는에 액세스 할 수 있어야합니다 그리고 당신은 너무 같은 하위 폴더에 넣을 수 있습니다 : 여기

var appDataFolder = System.Environment.GetFolderPath(SpecialFolder.CommonApplicationData); 
var dir = Path.Combine(Path.Combine(appDataFolder, "My Application"), "UploadedFiles"): 

// save your files into dir 

을 모든 "특수 폴더는"경우에 당신은 당신이 아니라 사용하는 것이 하나를 볼 수 있습니다 Environment.SpecialFolder

관련 문제