-2

PHPファイルで、アップロードのフォームを作成し、ajaxを介して別のphpを呼び出して写真をアップロードしました。name="file" を 2 番目の php に渡します。つまり、("C:\fakepath\xxx.JPG") のような写真のパスと名前の文字列があることを意味し、次のようにこの文字列を変数に入れます。

$file="最初の php のアップロード フォームからの文字列"; 次に、$_FILES["$file"]または $_FILES[$file]または$_FILES['$file']、常に次のようなエラーを返します。

Notice: Undefined index: C:\fakepath\xxx.JPG in C:\xampp\htdocs\project\ajax_php_files\PHPfile.php on line 111

アップロードフォーム (最初の PHP)

echo"
<form action='#' method='post' enctype='multipart/form-data' name='form1'  id='form1'>
<label for='file'>Filename:</label>
<input type='file' name='file' id='file'><br>
<input name='submit' type='button' id='submit' value='upload' onclick=\"SubmitData1('file')\" />
</form>";

ajax関数:

function SubmitData1(id1){

var file=document.getElementById(id1).value;

//var file=String(file);
alert(file);

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById("ContextPart").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_php_files/upload_file3.php?file="+file,true);
xmlhttp.send();

}

2 番目の php (upload_file3.php):

<?php
//$allowedExts = array("jpg", "jpeg", "gif", "png");
//$extension = end(explode(".", $_FILES["file"]["name"]));

$file=$_GET["file"];
// here, the variable $file is a string like:C:\fakepath\fit1.JPG

//$file="C:\Picture\Amir\fit1.JPG";
echo $file;

if ((($_FILES["file (or $file or '$file' or what?!!)"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 10000000))
//&& in_array($extension, $allowedExts))
  {

  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else

や。。など。 ...

助けはありますか?

4

2 に答える 2

1

したがって、問題は、$_FILE配列のインデックスがnameフォームに入力されたファイルのインデックスと関係があることです。この場合、あなたは探しています$_FILE['file']

GETもう1つの問題は、AJAXを使用してファイルをアップロードしようとしていることです。それは単に機能しません。ファイルのアップロードはPOSTである必要があり、AJAXでのファイルのアップロードは一方的にサポートされていません。GETでform要素の値を使用する場合は、常に。のようになりC:\fakepath\xxx.JPGます。

于 2013-03-09T23:51:48.683 に答える
0

タイプミスが見つかりまし((($_FILES["fit1"]["type"] == "image/gif")$_FILES["file"]

于 2013-03-09T23:55:24.640 に答える