投稿者: nishimotz

  • Delphi + PHP

    Delphi 2007 の Indy コンポーネントを使い、ファイルを HTTP 経由でアップロードし、PHP5 でダウンロードする動作を確認しました。下記のサンプルをそのまま実行しようとしたら、PHP5 で動かなかったことと、Delphi 側も多少の手直しが必要でした。

    <?php
    $upload_dir = '/data/www/html/uploader/data';
    $maxfilesize = 1024000; // up to 1MB
    $send = $_POST['send'];
    $userfile = $_FILES['userfile'];
    $phpself = $_SERVER['PHP_SELF'];
    if(isset($send)) {
    if(is_uploaded_file($userfile['tmp_name'])) {
    if($userfile['size'] <= $maxfilesize) {
    if (move_uploaded_file($userfile['tmp_name'],
    $upload_dir.'/'.$userfile['name'])) {
    echo '<p>upload ok</p>';
    } else {
    echo '<p>upload error</p>';
    }
    }
    }
    }
    ?>
    <form action="<?php echo $phpself; ?>" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxfilesize; ?>">
    <input type="file" name="userfile">
    <input type="submit" name="send" value="send">
    </form>
    

    Delphi の Form1 には IdHTTP1, Button1, Memo1 を貼り付けました。

    implementation
    {$R *.dfm}
    uses IdMultipartFormData;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    ResponseStream: TMemoryStream;
    MultiPartFormDataStream: TidMultiPartFormDataStream;
    begin
    MultiPartFormDataStream := TidMultiPartFormDataStream.Create;
    ResponseStream := TMemoryStream.Create;
    try
    IdHttp1.Request.ContentType :=
    MultiPartFormDataStream.RequestContentType;
    MultiPartFormDataStream.AddFile(
    'userfile', 'c:\test.jpg', 'multipart/form-data');
    MultiPartFormDataStream.AddFormField('send', 'send');
    MultiPartFormDataStream.Position := 0;
    IdHTTP1.Post('http://server/uploader/’,
    MultiPartFormDataStream, ResponseStream);
    Memo1.Lines.Append('[upload ok]');
    finally
    MultiPartFormDataStream.Free;
    ResponseStream.Free;
    end;
    end;
    procedure TForm1.IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
    const AStatusText: string);
    begin
    Memo1.Lines.Append(AStatusText);
    end;
    
  • バージョンアップ

    Eclipse ベースの Ruby on Rails 開発環境である CodeGear 3rdRail の 1.01 がリリースされました。

    オープンソースの音声認識エンジンである Julius 4.0 がリリースされました。

    詳細は近々レビューしたいと思います。

    世の中は仕事納めが近づいているのでしょうか。。私も昨日、まだ世界中にユーザが一人しかいない某ツールのバージョンアップをしましたが、仕事納めはなかなかやってきません。。

  • 未踏オフ会

    古川亨さんの講演を聴きたかったので、天才プログラマーではない私も未踏オフ会に行ってきました。

    「自分が作ったものを使ってくれる人の喜んでいる顔が見たい」

    その思いが、いまの自分にとって、やっぱり大切である、ということを再認識しました。

    プログラマー定年説の35歳のときに未踏ソフトに応募して、運良く採択され、運悪くいろいろな障害に遭遇しましたが、自分の弱点や限界を認識できたし、自分の情熱も確認できました。

    あれから2年、やっぱりプログラミングが楽しくて、だからこの分野で仕事を続けているのだと思います。そのわりには微妙に職種を選び間違えた気もしますが。。

    人と出会うことの大切さや可能性も再認識しました。

    そろそろ私は自分がスーパークリエーターになるのではなく、若くて能力がある人をサポートをするための能力を身につけたい、と思います。かつてのアスキーでの古川氏のように。

    でも並行して、自分が楽しむためのプログラミング技術を持ち続けたい、そして最後まで「自分が作ったものを・・・」という夢を持ち続けたい、とも思っています。