0

ユーザーがGoogleのアプリケーションエンジンで動作するPHPプログラムにファイルをアップロードできるようにするのに問題があります。私はthis google manualに従おうとしています。ユーザーがGoogleのアプリケーションエンジンからGoogleのデータストアに直接アップロードできるようにするにはどうすればよいですか?

Projecteditor.php:

public function index($cluster_id) 
{ 
    if($this->require_min_level(1)) 
    { 
     $project_access_lvl = $this->check_access_lvl($cluster_id); 
     if($project_access_lvl >= 0) 
     { 
      // Upload files to Google Cloud Storage 
      $my_bucket = 'THE_ID.appspot.com'; 
      $options = ['gs_bucket_name' => $my_bucket]; //todo app id 
      $upload_url = CloudStorageTools::createUploadUrl('/main.php/upload/handler', $options); 
      $view_data['upload_url'] = $upload_url; 

      // Display webpage 
      $cluster = $this->cluster_model->get_cluster_by_id($cluster_id)[0]; 
      $project = $this->project_model->get_projects($cluster['projecten_project_id'])[0]; 

      $view_data['fase_details'] = $this->get_fase_details($cluster['fase']); 
      $view_data['project_name'] = $project['naam']; 

      echo $this->load->view('templates/header', '', TRUE); 
      echo $this->load->view('projecteditor/index', (isset($view_data)) ? $view_data : '', TRUE); 
      echo $this->load->view('templates/footer', '', TRUE); 
     } 
     else 
     { 
      // TODO syslog 
     } 
    } 
} 

Upload.php:

もちろん
public function handler() 
{ 
    $my_bucket = 'THE_ID.appspot.com'; 
    # [START move_uploaded_file] 
    $file_name = $_FILES['uploaded_files']['name']; 
    $temp_name = $_FILES['uploaded_files']['tmp_name']; 
    move_uploaded_file($temp_name, "gs://${my_bucket}/${file_name}.txt"); 
    # [END move_uploaded_file] 
    return sprintf('Your file "%s" has been uploaded.', $file_name); 
} 

はIでTHE_IDを交換し、私はCodeIgniterの3で働いています

は、私は次のコントローラを設定しました正しいバケットID。

Projecteditorコントローラに対応するビュー内のフォーム:

<?php 
    echo form_open($upload_url, array('enctype' => 'multipart/form-data')); 
?> 
<div class="col-lg-12"> 
    <div id="my-dropzone" class="dropzone" action="#"> 
     <div class="dropzone-previews"></div> 
      <button type="submit" class="btn btn-success pull-right"><i class="fa fa-upload"></i>&nbsp;&nbsp;<span class="bold">Upload</span></button>    
     </div> 
    </div></div> 
<?php echo form_close(); ?> 

ファイルはjQueryのドロップボックスプラグインを使用してアップロードされます。 CloudStorageTools :: createUploadUrlの内部に間違った相対URLを入力したと思われますが、相対URLとして入力する内容を実際に見つけることはできません。両方のコントローラのための

絶対URLは次のとおりです。

Projecteditor.php: https://example.com/projecteditor/index/SOME_VARIABLE

Upload.php: 私のコードは、私はProjecteditor.phpにポストを得る実行https://example.com/main.php/upload/handler

が、 Upload.phpではなく、データストアバケットも空のままです。

私はまた、Googleストレージバケットについてthis sourceを使用しました。

私は何か間違ったことがあった場合や、データを保存するための別の方法(簡単な方法)がある場合はお知らせください。事前

答えて

0

おかげでどうやら設定ミスはすべてがうまく働いPHP側では、アップロードされてからファイルを防止jQueryのドロップボックスプラグインでした。

関連する問題