[WordPress] なぜ私の blob 送信されないですか?

スポンサーリンク

Question

コード、ファイルにしようとしている初心者を午前

アップロード検証その MySQL を blob として画像を送信する データベース。画像、ワードプレスのアップロード重力フォーム ファイル から取得されます (フォーム ID は 1 です)。実行する時、以下のスクリプトは、blob は送信されません私の mallampati_images テーブルにしかし、ファイル形式のアラートが表示されます。このエラーも出力:

Warning: file_get_contents(/home/clients/4ceaa5faab208e8af4350138684e6d6d/web/wp-content/uploads/mallampati.png): failed to open stream: No such file or directory in /home/clients/4ceaa5faab208e8af4350138684e6d6d/web/wp-content/themes/twentytwelve/functions.php on line 535

ファイルへのリンクの書式を設定する方法はどのような理解していません。ネット上いくつかの時間を見つけることができるあらゆる方法をしようとしているが、それを動作をさせることはできません。(つまり、正しい絶対リンクだ…) リンクを返すには、以下のコードを編集

スクリプト:

function testimage($path)
{
   if(!preg_match("/\.(png|jpg|gif)$/",$path,$ext)) return 0;

   $ret = null;
   switch($ext[1])
   {
       case 'png': $ret = @imagecreatefrompng($path); break;
       case 'jpg': $ret = @imagecreatefromjpeg($path); break;
       case 'gif': $ret = @imagecreatefromgif($path); break;
       default: $ret = 0;
   }

   return $ret;
}

add_action("gform_after_submission_1", "input_fields", 10, 3);
function input_fields($entry){
    global $wpdb;

   if (isset($_FILES['input_1'])) {
     $file_url = $entry['1'];
     //$img_blob = file_get_contents($file_url);
     $validate = testimage($file_url);

     $udir = wp_upload_dir();
     $basedir = $udir['basedir'];
     $target=$basedir.'/'.basename($_FILES['input_1']['name']);

     //$try = $_FILES['input_1']['tmp_name'];
     $img_blob = file_get_contents ($target);
     echo "";
   }

  if(!empty($validate)) {
     echo "";

     $SQL = "INSERT INTO mallampati_images (img_blob) VALUES ( $img_blob )";
     $wpdb->query($SQL);
   }
}

の答え

私は最終的にそれを作った

重力フォームで探している例とまったく同じファイルを処理しないようです。この問題は、SQL クエリで使用されている不正なファイル パスで起因したこと

function testimage($path)
{
   if(!preg_match("/\.(png|jpg|gif)$/",$path,$ext)) return 0;

   $ret = null;
   switch($ext[1])
   {
       case 'png': $ret = @imagecreatefrompng($path); break;
       case 'jpg': $ret = @imagecreatefromjpeg($path); break;
       case 'gif': $ret = @imagecreatefromgif($path); break;
       default: $ret = 0;
   }

   return $ret;
}

add_action("gform_after_submission_1", "input_fields", 10, 2);
function input_fields($entry){
    global $wpdb;

    if(isset($entry[1])){
      $valid = testimage($entry[1]);

      if($valid){
        $mpFilePath= $entry[1];
        $blob = file_get_contents($mpFilePath) or die ('cannot read file');
        $blob = addslashes($blob);
        $SQL = "INSERT INTO mallampati_images (img_blob) VALUES ( '$blob' )";
        $wpdb->query($SQL) or die ('query failed');
      }
      else{
        echo "";
      }
    }
}

http://stackoverflow.com/questions/27878199/why-does-my-blob-not-get-sent

スポンサーリンク

Leave a Reply