2012-04-11 2 views
0

가 계속 :내가 파일 입력을 포함하는 폼이 정의되지 않은 인덱스에게 통지

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startImageUpload(this);' class='imageuploadform' ><label>" + 
    "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label class='imagelbl'>" + 
    "<input type='submit' name='submitImageBtn' class='sbtn' value='Upload' /></label>" + + 
    "</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px;solclass #fff;'></iframe></form>"); 

PHP 스크립트에이 링크는 파일 업로드 :

<?php 

    $destination_path = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT']."/")."ImageFiles"; 

    $result = 0; 

    $target_path = $destination_path . basename($_FILES['fileImage']['name']); 

    if(move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) { 
     $result = 1; 
    } 

    sleep(1); 
?> 

<script language="javascript" type="text/javascript">window.top.window.stopImageUpload(<?php echo $result; ?>);</script> 

문제가있는 것입니다을 그것은 어디에 PHP 스크립트에서 'fileImage'상태라고 정의되지 않은 색인을 가지고있는 진술하는 PHP 스크립트. 그러나 'fileImage'형식의 name 속성에서 언급했을 때 정의되지 않은 색인을 갖는 이유가 무엇인지 알 수 없습니다. PHP 스크립트에서 'fileImage'에 대한 정의되지 않은 색인을 갖는 이유는 무엇입니까?

여기에 파일 입력을 포함하는 행을 추가 할 수있는 응용 프로그램에 대한 링크가 있습니다.이 파일을 테스트하여 원하는 경우 볼 수는 있지만 순간에 업로드하는 동안 오류가 있음을 계속 알려줍니다. application

+1

배열이 실제로 어떻게 보이는지 보려면 print_r ($ _ FILES)을 시도하십시오. – h00ligan

+0

@ h00ligan 나는 이것을 할 것이고 당신에게 돌아 간다 – user1324106

+0

나는 print_r ($ _ FILES)을 할 때 파일을 업로드했을지라도 이상한 공백 배열이있다. 출력 :'Array()' – user1324106

답변

1

이 오류의 근본 원인은 여러 가지가 있지만 실제 이유는 $_FILES 배열에 문자열 인덱스 'fileImage'이 없다는 것입니다.

인덱스를 사용할 수있는 더 나은보기를 얻으려면, 당신은 할 수 있습니다 :

var_dump(array_keys($_FILES)); 

뿐만 아니라 array_keysvar_dump를 참조하십시오.

아마 다음 (자바 스크립트 코드를 문서화이 질문에) 양식에 뭔가를 파괴하거나 데이터입니다됩니다 :

onsubmit='startImageUpload(this);' 
+0

각 테이블 행에 대해 파일을 업로드하기 때문에이 파일을 손상시키는 경우 (이)를 사용하고 있습니다.이 문제를 해결할 수있는 가능성은 무엇입니까? 내가 말했듯이, onsubmit 라인에서 (이)가 필요합니까? 이 제출을 수행하는 javascript 함수를 포함 시키시겠습니까? – user1324106

+0

'this'는 완벽하게 괜찮을 수 있습니다. 귀하의 질문에 명확하지 않기 때문에 나는 단지 가정했다, 이것은 완전히 떨어져있을 수도 있습니다. 귀하의 질문에 대해 언급 한대로, 귀하의 브라우저와 서버 간의 네트워크 트래픽을 분석하는 것으로 시작하는 것이 좋습니다. 귀하의 "업로드"요청이 어떻게되는지 분명하지 않기 때문입니다 (분명히 더 이상 업로드 요청이 없으므로 제공해야합니다. 더 많은 정보를 얻을 수 있습니다). – hakre

+0

여기에 파일 입력을 포함하는 행을 추가 할 수있는 응용 프로그램에 대한 링크가 있습니다.이 파일을 테스트하고 원하는 경우 직접 볼 수 있지만 순간에는 업로드하는 동안 오류가 있음을 계속 알려줍니다. [application] (http://helios.hud.ac.uk/u0867587/Mobile_app/QandATable2.php) – user1324106

0

나는 전에 같은 문제가 발생하고이 때문에 내 아약스/자바 스크립트 코드이었다. 테스트로서 javascript없이 양식을 보내보십시오. 그렇게하면 문제가 정확히 어디 있는지 알 수 있습니다. 오류가 사라지면 javascript로 문제가 발생할 수 있습니다.

아약스를 사용하여 파일을 업로드하는 데 올바른 해결책을 얻은 적이 결코 없습니다. 나는 iframe에 폼을 보낸 다음로드가 완료되면 피드백을 수집하여 문제를 해결했습니다.

양식 태그에 다음과 같이 입력합니다. <form action="..." target="myframe">. 프레임을 name="myframe"onload="getResults()"으로 작성하십시오. 이것은 모호 합니다만 생각해보십시오.

onload을 사용할 때주의하십시오. 페이지가 처음로드 될 때 및 양식 제출이 완료되면

여기에서 요점을 완전히 오해하지 않았 으면 좋겠습니다.

관련 문제