javascript - 将 php 页面 URL 中的变量传递给 JavaScript 和另一个 PHP

标签 javascript php html post xmlhttprequest

基于此链接中的代码http://webaudiodemos.appspot.com/AudioRecorder/index.html ,我正在进行更改,通过 URL 传递 sessionId 将录制的音频文件发送到服务器。 php页面是http://xxxxx/abc.php?sessionId=Sam 。 PHP 版本:PHP 5.4 PHP 5.5.22。我正在使用此链接中的第二种方法:How to pass variables and data from PHP to JavaScript? 。 abc.php 页面引用了一些 JS 代码,就像上面链接中的 index.html 一样。 abc.php 页面使用以下代码正确处理 URL 值:

  <div id="bottom">
        <?php
            $faid = $_GET["sessionId"];
            echo htmlspecialchars($faid);     // tested working
        ?>
  </div>

在 recorder.js JavaScript 上,我有一个函数,在将音频文件上传到服务器时尝试将 URL 值传递给另一个 PHP - fname 没有被传递......看起来 .. 可以 xhr.js 吗? send(blob) 仍会发送 fname 吗?

  Recorder.setupDownload = function(blob){
    var div = document.getElementById("bottom"); 
    var fname = div.textContent;                 

  var xhr = new XMLHttpRequest();
  xhr.open('POST', "./uploads.php?" + fname, true); 
  xhr.onload = function(e) {};
  // Listen to the upload progress.
  var progressBar = document.querySelector('progress');
  xhr.upload.onprogress = function(e) {
    if (e.lengthComputable) {
      progressBar.value = (e.loaded / e.total) * 100;
      progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
    }
  };

  xhr.send(blob); 

服务器中的 uploads.php 有以下脚本来接收值并创建音频文件 - 但它没有创建音频文件 - 但是,如果我修复文件名(例如:“filename123”)它写入音频文件 - 所以问题在于传递变量名称 - 我是新手,我想知道我错过了什么?:

    <?php
        ini_set("display_errors", true);
        error_reporting(E_ALL); 

    if(isset($_GET['fileId']) && !empty($_GET['fileId'])){
     $id = $_GET["fileId"];
    } 
        $fp = fopen( $id, 'wb' );   // writes the audio file 
        fwrite( $fp, $GLOBALS['HTTP_RAW_POST_DATA'] );   
        fclose( $fp );
    ?>

更新:正在运行!

最佳答案

您没有为值指定名称,因此您传递的值将在每个页面中显示为不同的键。

例如您的每个用户都会有类似的内容

http://example.com?foo
http://example.com?bar

通向 PHP 中的 $_GET['foo']$_GET['bar']。但由于 foo/bar 是代表您的 session ID 的一些随机值,因此您不知道该值是什么。所以...给它一个名字:

http://example.com?key=foo

现在您只需执行 $key = $_GET['key'] 并且始终可以访问您的 session 值,无论它的实际值是什么 - 它将始终分配给 key

关于javascript - 将 php 页面 URL 中的变量传递给 JavaScript 和另一个 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336224/

相关文章:

javascript - 如何在 Javascript 中增加对象内的唯一值

javascript - AJAX json 数据的 CSS 格式化

php - 交响乐 2 : How do I manually assign a file to an entity which has been configured to use VichUploaderBundle to handle file uploads

html - CSS - 如何设置标题图像作为使用例如。 Facebook?

html - 如何获得位置 :absolute div on top of relative of another parent

javascript - 如何使用 javascript 重新格式化嵌套 JSON 并进行重组

javascript - Angular.js 和 SEO

PHP simpleXML如何以格式化的方式保存文件?

PHPMailer:阿拉伯语(非英语)字符的主题名称

validation - 禁用 HTML5 表单元素的验证