문제

몇 가지 해결책이 있지만 그 중 어느 것도 완벽하게 작동하지 않습니다.

플랫폼

  1. ASP.NET/VB.NET/.NET 2.0
  2. IIS 6
  3. IE6(주로), 일부 IE7 포함;Firefox는 필수는 아니지만 유용합니다.

허용되는 타사 옵션

  1. 플래시
  2. ActiveX(피하고 싶습니다)
  3. Java (피하고 싶습니다)

현재 시도

Gmail 스타일:자바스크립트를 사용하여 새 업로드 요소(입력 유형='파일')를 추가한 다음 버튼 클릭만으로 한 번에 모두 업로드할 수 있습니다.이 방법은 작동하지만 여전히 많은 클릭이 필요합니다.(눈에 보이지 않는 ActiveX 컨트롤을 사용하여 파일 크기와 같은 정보를 감지할 수 있었는데 이는 유용했습니다.)

플래시 업로더:1x1 플래시 파일을 사용하여 자바스크립트로 호출할 수 있는 업로더 역할을 하는 몇 가지 플래시 업로드 컨트롤을 발견했습니다.(그러한 컨트롤 중 하나는 팬시업로드, 다른 하나는 Dojo의 다중 파일 업로더, 또 다른 하나는 다음과 같습니다. CodeProject의 darick_c.) 이것은 나를 흥분시켰지만 곧 두 가지 문제에 직면했습니다.

  1. Flash 10에서는 다중 파일 업로드 대화 상자를 호출하는 데 사용되는 기능이 중단됩니다.해결 방법은 투명한 플래시 프레임을 사용하거나 플래시 버튼을 사용하여 대화 상자를 호출하는 것입니다.그것은 큰 문제가 아닙니다.
  2. 플래시 파일이 파일을 업로드하려고 시도할 때 인트라넷에서 사용되는 통합 Windows 인증이 사용되지 않아 사용자에게 자격 증명을 묻는 메시지가 표시됩니다.이에 대한 해결 방법은 쿠키 없는 세션을 사용하는 것인데, 이는 여러 다른 이유로 인해 우리 프로젝트에 악몽이 될 것입니다.

자바 업로더:여러 Java 기반 다중 파일 업로더를 발견했지만 대부분 비용이 많이 드는 것으로 보입니다.정말 효과가 좋은 제품을 찾으면 구매를 준비할 수 있었습니다.나는 차라리하지 않을 것입니다.나는 또한 그들 대부분의 모습을 좋아하지 않습니다.FancyUpload는 html/javascript와 상호 작용하여 원하는 방식으로 쉽게 스타일을 지정하고 관리할 수 있다는 점에서 마음에 들었습니다.

ActiveX 업로더:나는 찾았다 ActiveX 솔루션 또한.ActiveX가 작동하는 것 같습니다.나는 그것을 사는 대신에 내 것을 직접 쓸 것입니다.내 생각엔 이것이 나의 최후의 수단이 될 것 같다.

해결

FancyUpload와 같은 기능을 사용하고 싶습니다.어떤 식으로든 자격 증명 프롬프트를 통해 얻을 수 있다면 완벽할 것입니다.하지만 제가 조사한 바에 따르면 유일한 해결 방법은 쿠키를 사용하지 않는 세션인 것으로 나타났습니다. 저는 이를 수행할 수 없습니다.

따라서 질문은 다음과 같습니다.위에 제시된 문제를 해결할 수 있는 방법이 있습니까? 아니면 동일한 목표를 달성하기 위해 나열하지 않은 다른 솔루션이 있습니까?

도움이 되었습니까?

해결책 5

@davidinbcn.myopenid.co:이것이 기본적으로 제가 이 문제를 해결한 방법입니다.하지만 더 자세한 답변을 제공하기 위해 여기에 솔루션을 게시하고 있습니다.

해결책!

두 개의 웹 애플리케이션이나 웹 사이트 등을 만듭니다.

응용 프로그램 A 간단한 웹 애플리케이션입니다.이 애플리케이션의 목적은 파일 업로드를 받아 적절한 위치에 저장하는 것입니다.익명 액세스가 허용되도록 설정하세요.그런 다음 게시된 파일을 허용하고 지정된 위치에 저장하는 단일 ASPX 페이지를 만듭니다.(인트라넷에서 이 작업을 하고 있습니다.이렇게 하면 인터넷 사이트가 보안 문제에 노출될 수 있습니다.이 경우 추가 예방 조치를 취하십시오.) 이 페이지의 코드는 다음과 같습니다.

Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
    UploadFiles(uploads)
Else
    result = "error"
    err = "File Not Uploaded"
End If

애플리케이션 B 파일 업로드를 허용하는 기본 사이트입니다.익명 액세스를 허용하지 않는 인증된 웹 애플리케이션으로 설정하세요.그런 다음 팬시업로드 (또는 유사한 솔루션)을 이 사이트의 페이지에 게시하세요.응용 프로그램 A의 ASPX 업로드 페이지에 파일을 게시하도록 구성합니다.

다른 팁

Windows 통합 인증에 대한 해결 방법은 없다고 생각합니다.당신이 할 수 있는 일은 파일을 보호되지 않는 일반 폴더에 저장하고, swfupload의 경우 파일이 완전히 업로드되면 핸들러를 사용하여 파일을 이동하는 것입니다.

당신은 시도해 볼 수 있습니다 SWF업로드 또한 - 귀하의 Flash Uploader "범주"에 적합할 것입니다.

우리 회사는 이 기능을 지원하는 ajaxuploader.com을 사용합니다.

Internet Explorer의 경우 FileReference.upload(플래시 업로드) ~ 할 것이다 쿠키도 함께 보내주세요.

이 동작은 다른 브라우저에서 실행할 때만 중단됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top