2011-12-20 3 views
2

사용자가 이미지를 업로드 할 수 있도록 파일 형식의 입력 컨트롤을 사용하고 있습니다. 업로드를 처리 할 때 WebImage.GetImageFromRequest()를 사용하여 제출 된 이미지를 가져옵니다. 사용자의 이미지 파일 이름에 소문자가 아닌 확장명이 없으면이 방법이 유용합니다. 따라서 myimage.jpg는 작동하지만 myimage.JPG는 작동하지 않습니다. 이것은 알려진 해결책이없는 documented 문제입니다.jQuery를 사용하여 입력 컨트롤 값을 변경하십시오.

jQuery에 입력 한 값의 이름을 바꾸어이 문제를 해결하려고 노력하고 있지만 제대로 작동하지 않습니다. 나는 유효한 확장을 검사하는 함수를 가지고 있으며, 여기에 값을 모두 소문자로 변환 할 수있는 코드를 추가 할 수 있다고 생각했지만 val() 메서드는 값을 예상대로 설정하지 않는 것 같습니다.

 $("#uploadimagebutton").click(function (e) { 
      var fileName = $('input[name="fileUpload"]').val(); 

      var validFileTypes = ['gif', 'jpg', 'png', 'jpeg', 'bmp']; 
      if (!fileName) { 
       e.preventDefault(); 
       return; 
      } 
      fileName = fileName.toLowerCase(); 


      alert(fileName); //This displays my file name and path in all lowercase 

      $('input[name="fileUpload"]').val(fileName); //This is FAILING 


      alert($('input[name="fileUpload"]').val()); //Shows path unchanged (not lower) 

      var dots = fileName.split(".") 
      //get the part AFTER the LAST period. 
      fileType = "." + dots[dots.length - 1]; 

      if (("." + validFileTypes.join(".")).indexOf(fileType) == -1) { 
       e.preventDefault(); 
       alert("File Type: " + fileType + " is not allowed. \n Please only upload files that end in types: \n\n." + (validFileTypes.join(" .")) + "\n\nPlease select a new file and try again."); 
      } 
      return; 
     }); 

위에서 언급 한 두 가지 경고를 볼 수 있습니다. 그래서, 내 경로

C:\Users\jreddy\Pictures\myimage.JPG 

나의 첫 번째 경고가 위의 문자열의 감소 버전을 표시한다, 같은 수 있으며 않습니다.

 c:\users\jreddy\pictures\myimage.jpg 

난 후 발 방법을 사용하여이 값을 설정하지만, 내가 할 때, 내 옆에있는 문은 내 원래의 문자열을 보여줍니다.

내 jQuery에 문제가 있거나 입력 컨트롤이 변경되는 것을 원치 않는 경우 확실하지 않습니다.

답변

1

필자의 이해는 파일 제어가 읽기 전용이라는 것입니다. 따라서 값을 비우거나 값을 읽을 수는 있지만 변경할 수는 없습니다 (가능한 것처럼 보일지라도).

Google에서 검색 할 때 허용하지 않는 IE에 대한 특정 참조를 참조하십시오.

+0

그래, 나는 이것이 사실이라고 판결했다. 이것은 보안 기능입니다. WebImage.GetImageFromRequest()가 null 인 경우 Request.Files에서 내 이미지를 가져 오기 위해 코드를 수정했습니다. 고마워요 @Ryley –

관련 문제