2012-11-06 6 views
0

C#을위한 asp.net에서 경로 가져 오기 이는 사용자가 업로드하지만 경로는 예를 들어해야하기 때문에 내가 무엇입니까 경로가 잘못내가 파일에 대한 경로를 얻기 위해 노력하고

"C:\\Users\\Tranga.Patel\\Downloads\template.xlsx" 

하지만, 내 프로그램에 내가 사용하고

"c:\\windows\\system32\\inetsrv\\Template Final.xlsx" 

코드를 나는 또한

를 사용하여 시도

fileName = Path.GetFullPath(fileUpload.PostedFile.FileName); 

되어 얻을

fileName = Server.MapPath(Path.GetFullPath(fileUpload.PostedFile.FileName)); 

이 다음을 사용하여 프로젝트

+0

fileUpload.PostedFile.FileName은 Internet Explorer에서 전체 경로를 제공하지만 다른 브라우저는 파일 이름 만 제공합니다. 또는 당신은 웹 사이트에서 일하고 있습니까? – PcPulsar

+0

나는 webiste에서 일하고있다. 그러나 내가 사용하고있는 브라우저는 크롬이다. 그러나 사람들은 모든 브라우저를 사용해야하며 코드는 여전히 작동해야한다. – user1776590

+0

왜 고객의 경로를 원한다고 말할 수 있습니까? 파일이 서버에 게시되면 클라이언트의 경로를 제대로 가져올 수 없습니다. 또한, 당신은 그 경로가 전혀 필요가 없습니다. – PcPulsar

답변

1

파일 업로드 컨트롤을 사용하고 있습니까? 그렇다면 업로드하려는 문서를 선택한 다음 저장하려는 경로를 지정하면됩니다. 예 :

// Get File Name 
documentName = Path.GetFileName(fuContentDocuments.FileName); 

// Specify your server path 
string serverPath = Server.MapPath("../../" + WebConfigurationManager.AppSettings["FilePath"].ToString()); 

// The final path 
string fileLocation = (serverPath + "\\" + userId + "\\" + documentName); 

// if folder doesn't exist then create it 
if (!Directory.Exists(serverPath + "\\" + userId + "\\")) 
{ 
    // create the folder for the file 
    Directory.CreateDirectory(serverPath + "\\" + userId + "\\"); 
} 

// Upload the file 
fuContentDocuments.SaveAs(fileLocation); 

참고 : UserId는 사용자 로그인 userId입니다. 다른 사용자는이 방법을 무시할 수 없습니다.

2

시도의 디렉토리 제공 :

var path=Server.MapPath('Uploads folder path from root directory'); 

이 당신에게 당신의 웹 사이트의 루트 디렉토리에서 폴더 경로를 제공합니다.

EDIT : - 사용자가 사이트 디렉토리 트리에없는 파일을 저장할 경로를 알고 있어야합니다.

+0

이것은 또한 실제 프로젝트의 루트 디렉토리가 아니라 사용자가 해당 데이터를 업로드 할 경로가 아닙니다. – user1776590

+0

파일은 사용자 direcory에 저장 될 수 있으며이 프로그램을 한 번에 여러 사용자가 사용할 수 있으며 동일한 파일이 두 번 업로드 됨 – user1776590

관련 문제