У меня есть 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>
вы можете попробовать в 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');
из вашего скрипта
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
перед сценарием js