2013-06-14 3 views
1

사용자가 서버에 파일을 업로드 할 수 있도록 asp:FileUpload을 사용하는 페이지의 양식 작업 중입니다. 저는 ASP에 익숙하지 않고 코드 숨김에 C#을 사용하고 있습니다. 사용자가 파일을 한 번에 하나씩 "첨부"하여 asp:listbox에 추가하도록 계획하는 것입니다. 마지막으로 양식이 제출되면 목록 상자의 파일이 서버에 저장됩니다.asp : FileUpload - 나중에 저장할 파일을 추적하십시오.

그것은 내가는 FileUpload 관계없이 파일을 추적하는 방법을 알아내는 어려움으로 실행하고

myFileUpload.SaveAs("path");

를 사용하여는 FileUpload에서 파일을 저장하는 아주 쉽게 보이지만. 정말 쉽게

Path.GetFileName(myFileUpload.PostedFile.FileName);

을 사용하여 파일 이름을 얻을 수 있지만, 정말 난 그냥 이름보다 더 추적하는 몇 가지 방법이 필요합니다. 내 첫 번째 생각은 아마도 일종의 임시 폴더를 사용하는 것이지만 잠재적으로 파일이 상당히 커질 수 있으므로 저장하는 데 시간이 오래 걸릴 수 있으므로 그렇게하고 싶지는 않습니다.

나중에 FileUpload와 관계없이 서버에 저장할 수 있도록 파일을 보관할 수 있습니까? 해당 컨트롤에 대한 모든 메소드에 액세스 할 수 있도록

+0

'파일 추적'이란 정확히 무엇을 의미합니까? 그리고 그저 그 이름보다 더 필요한 것은 무엇입니까? – cheesemacfly

+0

파일 업로드가 삭제 된 후 잠재적으로 나중에 파일을 저장할 수 있어야합니다/ – Flynn

+0

파일이 없으므로 파일을 메모리 나 디스크에 보관 하시겠습니까? 아직도 당신의 문제는 무엇인지 확실하지 않습니다 ... – cheesemacfly

답변

1

오히려 ListBox를 사용하는 것보다 내가 실제 <asp:FileUpload> 컨트롤을 사용합니다 - 같은 Save 등을

당신은 당신의 페이지에 이들의 무리를 넣을 수 있습니다

및 첫 번째 것을 제외한 모든 것을 숨기 만하면됩니다. 그런 다음이 버튼을 클릭 한 다음 "Add Another"버튼을 클릭하십시오. shownext<asp:FileUpload> 컨트롤 - JQuery는 현재 숨겨져있는 <asp:FileUpload>을 표시하는 좋은 선택입니다.

그런 다음 다시 게시 할 수 있습니다 당신의 <asp:FileUpload> 모든 컨트롤을 통해 그리고 만약 루프 그것을 HasFile - 컨트롤의 속성 인 - 다음 필요한 경우 임시 폴더에 등 그들을 저장

절약 수행 - 아마도 파일 이름을 GUID으로 변경하고이 목록을 GUID 님의 사용자 세션에 저장하여 필요할 때 언제든지 가져올 수 있습니다.

1

SaveAs를 호출하면 파일을 저장합니다. 기본 FileUpload 컨트롤을 사용하면 실제로 파일을 서버에 실제로 업로드하지 않고 어딘가에 캐시 할 수 없습니다. 마지막까지 업로드하지 않고 여러 파일을 업로드하려는 경우 사용자가 원하는만큼 많은 수의 FileUpload 컨트롤을 동적으로 생성해야합니다. 그렇게하면 한 번에 하나씩 업로드 할 파일을 선택하고 마지막에 업로드 버튼을 누르십시오.

그런 식으로는 다소 어색해졌습니다. 일부 제 3 자 업로드 컨트롤을 찾아 볼 것입니다. 과거에 PLUpload를 사용했습니다.

관련 문제