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スクリプトで、phpスクリプトで「fileImage」と指定されている場所に未定義のインデックスがあると記載されていることです。しかし、「fileImage」の形式で名前属性に言及したときに、未定義のインデックスがあると言っている理由がわかりません。PHPスクリプトで「fileImage」の未定義のインデックスがあると表示されるのはなぜですか?

これは、ファイル入力を含む行を追加できるアプリケーションへのリンクです。これをテストして、必要に応じて自分で確認できますが、現時点では、アップロード中にエラーが発生したと言い続けます。応用

4

2 に答える 2

1

このエラーの根本原因には多くの理由が考えられますが、実際の理由は、$_FILES配列に文字列 index がないこと'fileImage'です。

どのインデックスが利用可能かをよりよく把握するには、次のことを実行できます。

var_dump(array_keys($_FILES));

array_keysおよびも参照してくださいvar_dump

おそらく、次の (この質問では文書化されていない JavaScript コード) は、フォーム内の何かまたはそのデータを破壊しています:

onsubmit='startImageUpload(this);'
于 2012-04-11T12:27:36.757 に答える
0

以前にも同じ問題に遭遇しましたが、それは私の ajax/javascript コードが原因でした。テストとして、javascript なしでフォームを送信してみてください。そうすれば、正確にどこに問題があるかがわかります。エラーが解消された場合は、javascript に問題がある可能性があります。

ajax を使用してファイルをアップロードするための適切なソリューションが得られませんでした。フォームを iframe に送信し、読み込みが完了したらフィードバックを収集することで問題を解決しました。

フォームタグで次のようにします<form action="..." target="myframe">name="myframe"とでフレームを作成しますonload="getResults()" これは漠然としていますが、アイデアが得られることを願っています。

onload2回発射されるので、使用するときは注意してください。ページの最初の読み込みが完了したとき、およびフォームの送信が完了したとき。

ここであなたの主張を完全に誤解していないことを願っています。

于 2012-04-11T15:01:35.290 に答える