简体   繁体   English

无法从php检索变量

[英]Can't retrieve variable from php

PHP FILE: PHP文件:

<?php

#Communication with the API
require_once 'api.php';
$cloudkey = new CloudKey($user_id, $api_key);


if(isset($_FILES["FileInput"]) && $_FILES["FileInput"]["error"]== UPLOAD_ERR_OK)
{
    //Deleted Code: putting the uploaded files in my server.

    if(move_uploaded_file($_FILES['FileInput']['tmp_name'], $UploadDirectory.$NewFileName ))
       {

 $video_file = "/home/george/public_html/q/"; 
 $video_file = $video_file . $NewFileName; 

#Sending the video from my server to the cloud server
$res = $cloudkey->file->upload_file($video_file);

#The cloud server will create a link
$source_url = $res->url;

#The cloud server will convert the video very fastly
while(1) {
    #Deleted Code: Conversion
    if ($asset->status == 'ready') {
        # A lot of code. It will convert the videos here and if it succeeds it will stop.
    break;
    # If the conversion fails, display error
    } else if ($asset->status == 'error') {
        echo "Error while transcoding the media\n";
    }
    sleep(1);
}


# Getting the URL of a thumbnail
echo $thumb = $cloudkey->media->get_stream_url(array('id' => $media_id, 'asset_name' => 'jpeg_thumbnail_source'));

    }else{
        die('error uploading File!');
    }

}
else
{
    die('Something went wrong!');
}
?>

HTML FILE: HTML档案:

  {literal}
<script type="text/javascript">


$(document).ready(function() { 
    var options = { 
            target:   '#output',   // target element(s) to be updated with server response 
            beforeSubmit:  beforeSubmit,  // pre-submit callback 
            success:       afterSuccess,  // post-submit callback 
            uploadProgress: OnProgress, //upload progress callback 
            resetForm: true        // reset the form after successful submit 
        }; 


//function after succesful file upload (when server response)
function afterSuccess()
{
    $('#loading-img').hide(); //hide submit button
    $('#progressbox').fadeOut(); //hide progress bar
    //I WANT TO INSERT SOMETHING HERE.
}



//progress bar function
function OnProgress(event, position, total, percentComplete)
{
   //DOES NOT INTEREST YOU
}); 

</script>


{/literal} 

<div id="output"></div>

I am using smarty template engine. 我正在使用smarty模板引擎。 I have an html upload form that will communicate with a php file progressupload.php where the php file will convert the video (using API services) and brings back a response when it finishes. 我有一个html上载表格,该表格将与php文件progressupload.php进行通信,其中php文件将转换视频(使用API​​服务)并在完成时返回响应。

When the user uploads the video file, ajax will take over show the percentage (in html), and it will send the file to progressupload.php and when the progressupload.php finishes the conversion it will output everything echoed in the php by simply putting this in the html file (I don't know why): <div id="output"></div> . 当用户上传视频文件时,ajax将接管显示的百分比(以html格式),并将文件发送到progressupload.php ,当progressupload.php完成转换后,只需将回显的所有内容输出到php中这在html文件中(我不知道为什么): <div id="output"></div>

WHAT I WANT: 我想要的是:

When progressupload.php finishes the conversion, it will generate a thumbnail (screenshot) and store its link in $thumb . progressupload.php完成转换后,它将生成一个缩略图(屏幕快照)并将其链接存储在$thumb I want to retrieve $thumb and show it to the user using jquery. 我想检索$thumb并将其显示给用户使用jquery。

Now if you look at the HTML Code, afterSuccess() is the function where I want to show the thumbnail to the user: 现在,如果您查看HTML代码,则afterSuccess()是我要向用户显示缩略图的函数:

function afterSuccess()
{
    $('#loading-img').hide(); //hide submit button
    $('#progressbox').fadeOut(); //hide progress bar
    //I WANT TO SHOW THE THUMBNAIL HERE.
}

I deleted a lot of unnecessary code that could've distracted you. 我删除了很多不必要的代码,这些代码可能会使您分心。 Remember that I am using smarty template engine, my html file does not end with .php , I cannot echo the variable directly. 请记住,我使用的是smarty模板引擎,我的html文件未以.php结尾 ,我无法直接回显该变量。 How can I retrieve the php variable and put it in a jquery method after the variable is created. 创建变量后,如何检索php变量并将其放入jquery方法中。

I have a suspicion that if you retrieve the variable directly on page load, it will not succeed in getting $thumb since the link needs time to be created (uploading, conversion). 我怀疑如果直接在页面加载时检索变量,由于链接需要创建时间(上载,转换),因此它不会成功获取$thumb How can I retrieve that $thumb ? 如何检索该$thumb

Assuming that you are using jQuery.ajax(); 假设您正在使用jQuery.ajax();
First parameter in the $.ajax 'success' callback is what returned from the server side. $ .ajax“成功”回调中的第一个参数是从服务器端返回的参数。

function afterSuccess( response /** this is what returned from your server **/ )
{
    $('#loading-img').hide(); //hide submit button
    $('#progressbox').fadeOut(); //hide progress bar
    //I WANT TO INSERT SOMETHING HERE.

    console.log(response); // here you can access your $thumbnail
    // below code is untested but it should work
    // $("#output").html("<img src='"+response+"' class='thumbnail' />");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM