PHP サーバにファイルをアップロードする

smbサーバ立ててファイル倉庫にしたかったのにiOSにサーバアプリないしだめじゃん。
必要なファイルだけ取り出してほとんど使ってないのに、そこそこ毎月お金が落ちていくサーバをつぶそう
NAS Network Attached Storage ファイルシステムやネットワーク通信機能を内蔵したファイルサーバ
ソースコードネットに上げるのは流石に胡散臭いけど、ブラックボックス過ぎてほとんど誰も仕様を知らないクソサブシステムの自分用メモ書きに「くそ.xlsx」って名前つけてファイルサーバに置いてたことはある で、この間寝ぼけながら自分のファイル整理しようとしたときに間違って消して死んだ
色々PCリプレイス検討した結果、まずは外付けHDDの信頼性UPかなと、、 最早単なるHDDじゃなく、音楽ファイルサーバだ、、、
次の週末までにファイルサーバをデプロイするから待って(
自宅のFSMO ADを役割移さずに止めてたから、ファイルサーバのアクセスがおかしくなってる。明日、確認しましょう
②テキストでエクスポートされるらしい。画像は画像で別に保存しておかないといけない。で、記事を削除する前に、アップロードした画像をコピペでファイルに保存。めんどくさがりつつも画像をすべてコピーしたのち、サーバ上の画像を削除し。テキストのエクスポート開始。
【NAS】 Network Access Storage サーバとストレージデバイスがIPネットワークを介して接続された形態。SANとは異なりファイル共有プロトコルを使用する。ファイルサーバと機能的に同等である。DAFSと使用性は同等であるが、一般的にDAFSの方が高速。
あ・・・・・・・・・ うちのファイルサーバ、ipv6でsambaをインターネットに大公開してるやんけ・・・ 怖すぎ
【DNSラウンドロビン】 一つのドメイン名に複数のIPアドレスを割り当てる負荷分散技術の一つ。安価で設定が容易(ゾーンファイルのみ)。ロードバランサのように、効率的な負荷分散の実現や、障害発生サーバの検知、同じクライアントからの通信を常に同じサーバに転送することができない。
サーバパラメータファイル(SPFILE):Oracleサーバによって読み書き可能なバイナリファイル。データベース起動中に変更することができ、再起動しても有効である。初期化パラメータファイルに優先して読み込まれる。
vim、つまりEnhanceされた方だと、各種設定ファイルがハイライトされるので、かなり見やすくなるよね。サーバ構築時はミスを減らすためにvim、普段はviって感じかも。
ひぃ、私のPCのウィルス対策ソフトがトロイの木馬を検知∑(OωO; ) 私の端末じゃなくて、プロジェクトの皆が見る最新資材公開サーバの資材で、本番稼働してるexeファイルだからかなりヤバい(-ω-;)
4xx Client Error 413 Request Entity Too Large リクエストエンティティがサーバの許容範囲を超えている場合に返す。サーバの制限サイズより大きいファイルをアップロードしたようなとき。

Watson Natural Language Understandingの感情分析触ってみたところ面白そうだったのでメモ。他にもNLUのAPIあるんですけど、あんまり細かくは分からないんですよね。

翻訳

感情抽出に関しては英語にしか対応していませんので、まずはMicrosoft Translator APIで日本語を英語に翻訳しましょう。

Microsoft TranslatorでKey取得しておいて下さい。

こんな感じ。

translate.
<?php

define('AZURE_KEY', 'YOUR_AZURE_KEY');
define('AUTH_URL', 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken');

$text = $_GET['text'];
$from = $_GET['from'];
$to = $_GET['to'];

try
{
  $accessToken = GetAccessToken();
  $params = 'text=' . urlencode($text) . '&from=' . $from . '&to=' . $to . '&appId=Bearer+' . $accessToken;;
  $url = 'http://api.microsofttranslator.com/v2/Http.svc/Translate?'  .$params;
  $response = Request( $url );
  echo $response;
} catch(Exception $e) {
    echo $e->getMessage();
}

function GetAccessToken()
{
  $params = json_encode('{body}');
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, AUTH_URL );
  curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
  curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($params),
    'Ocp-Apim-Subscription-Key: ' . AZURE_KEY
    )
  );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE );
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );

  $response = curl_exec($ch);
  if(curl_errno($ch)){
    throw new Exception( curl_error( $ch ) );
  }
  curl_close( $ch );

  return $response;
}

function Request( $url )
{
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-Type: text/xml' ) );
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );

  $response = curl_exec($ch);
  if(curl_errno($ch)) {
    throw new Exception(curl_error($ch));
  }
  curl_close( $ch );

  return $response;
}

?>

感情分析

page.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
<title>Watson NLU Test</title>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function(){
  $("#text").focus();
  $('#text').keypress(function(e) {
    if (e.which == 13) {
      $("#button").click();
    }
  });
  $("#button").click(function(){
    $("#result").html("Understanding...");
    var translated = "";
    $.ajax({
      type: "GET",
      url: "translate.php?from=ja&to=en&text=" + encodeURI($("#text").val()),
      async: false,
      success:function(data){
        console.log("success");
        console.log(data);
        translated = data;
      },
      error:function(){}
    });

    var url = "https://watson-api-explorer.mybluemix.net/natural-language-understanding/api/v1/analyze?version=2017-02-27&features=emotion&text=" + encodeURI(translated);
    console.log(url);
    $.ajax({
      type: "GET",
      url: url,
      success: function( data ){
        console.log("success");
        var emotions = data.emotion.document.emotion;
        console.log(data);
        console.log(emotions);
        $("#result").html("<span style='font-size:" + (20 + 50 * (emotions.anger / 1.0)) +
          "pt'>😡</span><span style='font-size:" + (20 + 50 * (emotions.disgust / 1.0)) +
          "pt'>😵</span><span style='font-size:" + (20 + 50 * (emotions.fear / 1.0)) +
          "pt'>😱</span><span style='font-size:" + (20 + 50 * (emotions.joy / 1.0)) +
          "pt'>😃</span><span style='font-size:" + (20 + 50 * (emotions.sadness / 1.0)) +
          "pt'>😭</span>");
      },
      error: function( XMLHttpRequest, textStatus, errorThrown ){}
    });
  });

});
</script>
</head>
<body>
  <h1>Watson NLU Test</h1>
  <input type="text" id="text">
  <button id="button">Tap Me</button>
  <div id="result"></div>
</body>
</html>

分析してみる




まとめ

翻訳通さずに直接英語渡すとかなり精度出るんですが、翻訳挟むとそうでもないですね。

宣伝

LINE BOTを作ろう! Messaging APIを使ったチャットボットの基礎と利用例

好評発売中!

[紹介元] PHPタグが付けられた新着投稿 – Qiita PHP サーバにファイルをアップロードする

  • コメント

    1. 匿名希望
      2017/06/25(日) 02:14:31

      smbサーバ立ててファイル倉庫にしたかったのにiOSにサーバアプリないしだめじゃん。

    2. 匿名希望
      2017/06/25(日) 02:14:31

      必要なファイルだけ取り出してほとんど使ってないのに、そこそこ毎月お金が落ちていくサーバをつぶそう

    3. 匿名希望
      2017/06/25(日) 02:14:31

      NAS Network Attached Storage ファイルシステムやネットワーク通信機能を内蔵したファイルサーバ

    4. 匿名希望
      2017/06/25(日) 02:14:31

      ソースコードネットに上げるのは流石に胡散臭いけど、ブラックボックス過ぎてほとんど誰も仕様を知らないクソサブシステムの自分用メモ書きに「くそ.xlsx」って名前つけてファイルサーバに置いてたことはある
      で、この間寝ぼけながら自分のファイル整理しようとしたときに間違って消して死んだ

    5. 匿名希望
      2017/06/25(日) 02:14:31

      色々PCリプレイス検討した結果、まずは外付けHDDの信頼性UPかなと、、
      最早単なるHDDじゃなく、音楽ファイルサーバだ、、、

    記事に戻る

関連記事