2010-07-03 5 views
0

serializeArray를 사용하여 양식 문제를 일종의 정렬했지만 입력/파일에 대한 지원이 부족하다는 것을 알고 있으므로 직렬화 된 데이터와 병합을 결정하십시오. 이제는 객체를 만들고 모든 것은 .val()을 사용하여 파일의 이름을 얻습니다. 그러나 나는 이미지 소스를 할 수 없다. 예를 들어,이 작업을 수행 할 :jQuery는 이미지 원본을 암호화합니다./

 alert(jQuery('.inputBox#pic').attr(src)); 
     var obj = {'name' : 'pic', 
        'value' : jQuery('input#pic').src}; 

유일한 문제는 작동하지 않는다는 것입니다. 업로드 할 준비가 된 이미지 소스를 가져올 수 없습니다. 그것 없이는 POST 요청을 성공적으로 수행 할 수 없습니다.

답변

0

그런 식으로 파일을 게시 할 수 없습니다.

파일의 전체 소스 (일부 브라우저에서도 허용되지 않음)를 가져올 수 있더라도 액세스 할 수없는 로컬 파일의 주소가됩니다.

파일을 서버에 게시하는 유일한 방법은 업로드 컨트롤이있는 양식을 게시하는 것입니다. 보안상의 이유로 다른 방법으로 클라이언트 컴퓨터에서 파일을 가져올 수는 없습니다. 즉, 페이지에 실제 양식을 게시해야 함을 의미합니다. AJAX 게시를 할 수 없습니다.

0

양식을 작성하는 데 사용할 수있는 jQuery.form을 살펴보십시오. 또한 supports file input fields입니다.

+0

나는 그것을 시도하고 그것은 나를 위해 아주 잘 작동하지 않습니다. 생각해 줘서 고마워. – Anonymous

0

alert()의 요점은 무엇입니까? 그리고 src 속성으로 무엇을하려고합니까? jQuery (selector) .src는 img 요소 나 그 속성에 그런 식으로 접근 할 수 없으므로 아무 것도하지 않습니다.

var imgSrc = $('#pic').attr('src'); 
// or 
var obj = { 
    'name' : 'pic', 
    'value' : $('#pic').attr('src'); 
}; 

난 당신이 파일이이 방법을 업로드 수행 계획 방법을 잘 모르겠지만, 당신이 그것을 얼마나 그건 :

당신이 src의 값을 원하는 경우

후 사용합니다. 여전히, jQuery documentation을 감추어 jQuery DOM 조작에 대한 기본 사항을 이해할 것을 권장합니다. .attr()을 사용하면 jQuery 결과에 요소 속성을 가져 오거나 설정할 수 있습니다. 당신이 실제 요소의 객체 또는 속성에 액세스하려면, 당신은 사용할 필요가 :

var elPic = $('#pic')[0]; 
// or 
var imgSrc = $('#pic')[0].src; 

는 또한, 일반적으로 ID를 고유해야하기 때문에 클래스 선택기로 ID 선택기를 혼합 아무 소용이 없다.

마지막으로 ".attr(src)"은 코드에 오타가 있다고 가정합니다. 그러나 그렇지 않은 경우 변수와 문자열 리터럴 간의 차이점을 알 수 있도록 JavaScript를 브러시로 처리해야합니다. String literals을 작은 따옴표 나 큰 따옴표로 묶어야합니다. 그렇지 않으면 JavaScript는 문자열 "src"대신 src이라는 변수를 함수에 전달한다고 생각합니다.

+0

그 경고가 그 안에있는 디버그 코드의 일부였습니다. 하지만 내가 원하는 방식대로 할 수 없다는 정보를 찾았으므로 이것을 해결 방법으로 포기합니다. 도와 주셔서 감사합니다 – Anonymous

관련 문제