1

iframe に投稿する単純なファイル アップロード フォームがあり、iframe から値を取得して別のページにリダイレクトします。

問題は、フォームがiframeに投稿されていないことです(私は考えていません)。そのため、phpは実行されておらず、nullがjavascriptに返されています。

HTML コード

<form id="upload" name="upload" enctype="multipart/form-data" method="post" action="index.php" target="upload_target">
   <input name="folder" type="hidden" value="<?php echo $folder ?>"  />
   <input name="filename" type="hidden" value="<?php echo $filename ?>"  />
   <input name="uploaded_file" type="file" size="5120" id="uploaded_file" accept="image/jpeg"  />
    <input id="sent" name="sent" type="submit"  value="Upload" />
</form>
<iframe id="upload_target" name="upload_target" style="width:10px; height:10px; display:none"></iframe>

iframe から値を取得する Javascript

$('form#upload').submit(function(){  

    $('#upload_wrapper').hide();
    $('#loading').show();

    // get the uploaded file name from the iframe
    $('#upload_target').unbind().load( function()
    {                               
      var img = $('#upload_target').contents().find('#filename').html();
      alert(img); //returning null
      $('#loading').hide();

     });
});

そして、ファイルをアップロードするページの上部にある PHP

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$targetFolder = $_POST['folder'] . "/";
$filename2 = $_POST['filename'];

if (!is_dir($targetFolder)) 
{
    mkdir($targetFolder, 0777);
}

    $tempFile = $_FILES['uploaded_file']['tmp_name'];
    $targetPath = dirname(__FILE__) . '/' . $targetFolder;
    $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['uploaded_file']['name'];

    $uploadfile = $targetFolder. basename($filename2 .".jpg");
    move_uploaded_file($tempFile,$uploadfile);
    $fileName = $uploadfile;

    echo "<div id='filename'>$fileName</div>";

}

このコードは以前は機能していたので、なぜ停止したのかわかりません。助けてください。

4

0 に答える 0