после загрузки в облачное хранилище Google, перенаправьте обратно на главную страницу с формой загрузки

0

У меня есть php-скрипт read_write.php, который используется для загрузки файлов в облачное хранилище Google. Скрипт отлично работает и успешно загружает мои файлы на мой буклет в облачном хранилище Google. Единственная проблема заключается в том, что после загрузки файлов, нажав на загрузку, страница перенаправляется на ссылку, используемую Google (см. Мою форму ниже),

action="<?php echo $upload_url?>"

Я не хочу, чтобы меня перенаправляли на эту ссылку. Я хочу, чтобы файл был перенаправлен обратно на мою php-страницу, которая является read_write.php. Любая идея, как это исправить? Это мой код:

<?php
 require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
 use google\appengine\api\cloud_storage\CloudStorageTools;

 $options = [ 'gs_bucket_name' => 'carb' ];
 $upload_url = CloudStorageTools::createUploadUrl('/read_write', $options);


if(isset($_POST['do-upload']) AND $_POST['do-upload'] === "yes"){


    $yesupload = $_POST['do-upload'];

    preg_match("/yes/", "".$yesupload."");

    $filename = $_FILES['testupload']['name'];
    $gs_name = $_FILES['testupload']['tmp_name'];

    $temp = explode(".",$_FILES["testupload"]["name"]);        
    $newfilename =  substr(md5(time()), 0, 100) . '.' .end($temp);

    move_uploaded_file($gs_name, 'gs://carb/'.$newfilename.'');


        $object_image_file = 'gs://carb/'.$newfilename.'';
        $object_image_url = CloudStorageTools::getImageServingUrl($object_image_file,   ['size' => 400, 'crop' => true]);

        mysql_query("UPDATE 'myusers' SET 'profile'= '" . mysql_real_escape_string($object_image_url) . "' WHERE 'user_id'= " . (int)$session_user_id);

 //---I use this header here, but there is no redirecton to this, after pressing upload button

                header('Location: read_write.php');  
                exit();

}

//---displays the image i have upload

    if(empty($user_data['profile'])=== false ){
        echo ' <img src="', $user_data['profile'], '" alt="', 'Image 400k max">';   
    }else   
        echo'<img src="img/photo.jpg"/>';



 <form class="SomeSpaceDude" action="<?php echo $upload_url?>" enctype="multipart/form-data"    method="post">
   <p>Files to upload: </p> <br>
   <input type="hidden" name="do-upload" value="yes">
   <input class="SomeSpaceDude topcoat-button" type="file" name="testupload" >
   <input class="SomeSpaceDude topcoat-button" type="submit" value="Upload">
 </form>
  • 0
    Это странно. первый параметр для createUploadUrl, $ success_path, предназначен именно для этого. На какой URL Google вы перенаправляетесь?
  • 0
    он перенаправляет меня на URL: /_ah/upload/AMmfu6aUVTgiLLMe9Vn... Из того, что я понимаю, чтобы загрузить изображение в облачное хранилище Google, этот URL использовался для загрузки. Но моя проблема в том, что я не хочу оставаться на этой пустой странице, на которую этот URL перенаправляет меня. Я хочу быть перенаправлены обратно на ту же страницу
Теги:
google-cloud-storage
file-upload
redirect

1 ответ

0

вы можете попробовать в ajax

//your php code before

<input type="hidden" name="do-upload" id="do-upload" value="yes">
   <input class="SomeSpaceDude topcoat-button" type="file" id="testupload" name="testupload" >
   <input class="SomeSpaceDude topcoat-button" type="button" onclick="save_form();" value="Upload">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function save_form(){
var testupload=$('#testupload').val();
var doupload=$('#do-upload').val();
var dataString="testupload="+testupload+"&do-upload="+doupload;
$.ajax({
type: "POST",
url: "<?php echo $upload_url ?>",
data: dataString,
cache: false,
success: function(){
location.reload();
}
});
}</script>

и удалить header('Location: read_write.php'); из вашего скрипта

  • 0
    сделал это, ничего не происходит после нажатия кнопки загрузки ... В чем здесь может быть проблема?
  • 0
    о, конечно, вставьте <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> перед сценарием js
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню