Chibipaintというお絵かきアプレットについて

このQ&Aのポイント
  • Chibipaint(www.chibipaint.com)というお絵かきアプレットを自サイトに設置しようとしているのですが、保存・投稿ができずエラーメッセージが表示されます。
  • 投稿する際に利用する投稿用PHPが足りないのか疑問に思っています。
  • 専門的な知識がなく、アプレットの設置方法について手ほどきしていただける方を求めています。
回答を見る
  • ベストアンサー

Chibipaint というお絵かきアプレット

ご閲覧ありがとうございます。 Chibipaint (www.chibipaint.com) というお絵かきアプレットを自サイトに設置しようとしているのですが、検索しても参考になるサイトに出会えずここに質問した次第です。  まず私は本家のダウンロードページ一番上(ChibiPaint-bin-0.7.11.2.zip - binary release with the .jar file for oekaki board...と書いてある方)を利用しています。同封されている“Read me”を参考にアプレットの起動→お絵かきまではできたのですが肝心の(保存)投稿ができません。投稿しようとすると、添付ファイルのようなエラーメッセージがでます。これは何を意味しているのでしょうか? もちろんアップロード用のディレクトリのパーミッションは書き込み可(777or707と両方試しましたが、一般的には707のがいいとネットで見たことがあったので今は707)に設定してあります。 - - - - - ちなみのその Read me によると投稿する際には投稿用のPHPを利用するだけのようなのですが、その投稿用PHPというのが下記で… <?php if (isset($_FILES["picture"])) { header ('Content-type: text/plain'); $uploaddir = $_SERVER["DOCUMENT_ROOT"].'/アップロード用ディレクトリ名/'; $file = $_FILES['picture']['name']; $ext = (strpos($file, '.') === FALSE) ? '' : substr($file, strrpos($file, '.')); $uploadfile = $uploaddir . time(); $success = TRUE; if (isset($_FILES["chibifile"])) $success = $success && move_uploaded_file($_FILES['chibifile']['tmp_name'], $uploadfile . ".chi"); $success = $success && move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile . $ext); if ($success) { echo "CHIBIOK\n"; } else { echo "CHIBIERROR\n"; } } else echo "CHIBIERROR No Data\n"; ?> もしかしてこの記述だけでは足りないのでしょうか? とにかく専門でないので全くわかりません。どなたか手ほどきして頂けないでしょうか…。 ※ファイル内にはアプレット、ライセンスtxt、そして Read me の3ファイルしか入っていませんでした。 ※尚、このChibipaintというアプレットはWordpress用のプラグインにございますが、WPにプラグインをインストールしてというのは無しの方向です。 どうか宜しくお願い致します。

noname#149012
noname#149012
  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • pica_zip
  • ベストアンサー率67% (19/28)
回答No.2

うまくいかないようですね。 画像にあるエラーは、PHP側からのレスポンスが正常ではない場合にApplet が表示しているものです。 正常であれば、PHPから "CHIBIOK" という文字列が返ってくるのですがそうでないばあいアップロード、保存処理が失敗している可能性があります。 とりあえずうまくいった設置方法を書いておきますので参考まで。ドキュメントルートはご存じですよね。 1.ドキュメントルート直下に oekaki というディレクトリを作成 (707 パーミッション) 2.oekaki ディレクトリに以下の 3つのファイルを設置    index.html    chibipaint.jar ←これは配布されているもの    cpget.php 3.index.htmlの中身は以下の通り。あなたのドメインの部分は書き換えてください。 -------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> </head> <body> <applet archive="chibipaint.jar" code="chibipaint.ChibiPaint.class" width="800" height="600"> <param name="canvasWidth" value="400" /> <param name="canvasHeight" value="300" /> <param name="postUrl" value="http://■あなたのドメイン/oekaki/cpget.php" /> <param name="exitUrl" value="http://■あなたのドメイン/oekaki/" /> <param name="exitUrlTarget" value="_self" /> JAVA NOT SUPPORTED! <!-- alternative content for users who don't have Java installed --> </applet> </body> </html> cpget.phpの中身 ------------------------------ <?php if (isset($_FILES["picture"])) { header ('Content-type: text/plain'); $uploaddir = $_SERVER["DOCUMENT_ROOT"].'/oekaki/'; $file = $_FILES['picture']['name']; $ext = (strpos($file, '.') === FALSE) ? '' : substr($file, strrpos($file, '.')); $uploadfile = $uploaddir . time(); $success = TRUE; if (isset($_FILES["chibifile"])) $success = $success && move_uploaded_file($_FILES['chibifile']['tmp_name'], $uploadfile . ".chi"); $success = $success && move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile . $ext); if ($success) { echo "CHIBIOK\n"; } else { echo "CHIBIERROR\n"; } } else echo "CHIBIERROR No Data\n"; ?> -----------ここまで 以上の内容で index.html, cpget.php を /oekaki ディレクトリにアップして ブラウザから http://あなたのドメイン/oekaki/ にアクセス。

noname#149012
質問者

お礼

うぉお…!すごい!無事保存することができました!! 嬉しくて早速お絵かきしたものをプロフィール画像にしてしまいました(笑) 自分が記述した(といってもコピペですが…)内容や設定を pica_zip 様の回答と照らし合わせてみたところ、案の定初歩的なところでつまずいておりました。(お恥ずかしい…^_^; ) ですが、お陰様で、ますますPHPというものに興味が湧きました。 お忙しい中だというのに、最後まで親切にお付き合い下さり本当にありがとうございました(感涙)

その他の回答 (1)

  • pica_zip
  • ベストアンサー率67% (19/28)
回答No.1

多分予想ですが、PHP がうまく設置できてないのかもしれませんね。 PHP を編集したエディタは何を使いましたか? ウィンドウズのメモ帳はトラブルの元なのでNGです。 terapad http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html とりあえず上記のエディタを使用して <?php の前には、スペースも空行もあけずにコードを保存設置してみてください。 ちなみに当方が、設置したものは上記のスクリプトでうまく動作してます。 あと広告が入ったりするような無料サーバではうまく動かないかもしれません。

noname#149012
質問者

補足

ご回答そして設置までして下さったようで、もうなんといってよいやら…本当にありがとうございます。使用しているツールや環境等の記載を忘れてしまい大変ご迷惑をおかけしました…。 今私が使っているエディタは Dreamweaver で、設置環境は有料サーバ(もちろん無広告)のCGIやPHP等の設置が可能なサーバです。 頂いたアドバイス通り、 Terapad を使用した上で空間を開けずアップロードしてみましたが、やはりうまくいきません…。なんだかとっても初歩的な事で行き詰まっている気もしてはいるのですが…。 引き続き挑戦してみます。本当にありがとうございました。

関連するQ&A

  • 教本の説明の意味が分かりません?

    アップロードファイルを受け取る側のPHPスクリプトです。 以下のスクリプトのファイル名は、『fupload.php』です。 <?php $uploaddir = './up/file/';-----------------------------------(1) $uploadfile = basename($_FILES['userfile']['name']); echo '<per>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.$uploadfile)){ echo"ファイルアップロードに成功しました。\n"; } else{ echo "ファイルアップロードは不成功です。\n"; } echo '</pre>' ?> 以上がプログラムです。   PHP教本の (1)でアップロードされたファイルを格納するサーバ側のフォルダを指定しています。なお、アップロードするファイルを格納するフォルダはfupload.phpが配置されている 位置の下にupフォルダを作成し、さらにその下にfileの名前で作成』しておきます。 以上ですが、 こういうことでしょうか。 カレントディレクトリ ├ fupload.php └ up(フォルダ) ..... └ file(フォルダ)  宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPファイル・アップロードに関する質問

    あるPHP技術書籍で掲載のPHPファイル・アップロードの例を試したところ、アップロードするファイル・サイズは、小さいな(数KB)場合が成功、より大きな場合(例えば40KB~)が失敗!何故失敗なのかよく分かりません。ファイル種類には関係なさそうです。 詳しい方に教えて頂ければ助かります。 ※ ご参考 - 1. 具体的なHTML&PHPコードは、次の通りです。 2. 利用環境: 最新版XAMPP、Windows 7、XAMPPデフォルト・ルートをD:のある フォルダーに変更。D:に十分空き領域があると確認済み(数十GB)。 =====HTML===================== <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>fupload</title> </head> <body> <h3>ファイルアップロード</h3> <form method="POST" action="fupload.php" enctype="multipart/form-data"> <!-- MAX_FILE_SIZE は、必ず "file" input フィールドより前になければなりません --> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <!-- input 要素の名前が $_FILES 配列での名前となります --> <input name="userfile" type="file" size="70"/> <input type="submit" value="アップロード" /> </form> </body> </html> =====PHP--===================== <?php $uploaddir = './up/file/'; $uploadfile = basename($_FILES['userfile']['name']); echo '<pre>'; //if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$uploadfile)) { echo "ファイルアップロードに成功しました。\n"; } else { echo "ファイルアップロードは不成功です。\n"; } echo '<pre>'; ?> =====PHP関連設定(php.ini)========-== ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads=On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir upload_tmp_dir="C:\xampp\tmp" ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize=2M ; Maximum number of files that can be uploaded via a single request max_file_uploads=20

    • ベストアンサー
    • PHP
  • php アップロードファイルが*.csv指定の問題

    <form name="csvupload" id="csvupload" action="csvread.php" method="post" enctype="multipart/form-data" > <input type="hidden" name="MAX_FILE_SIZE" value="30000" /><br /> csvfile:<input type="file" name="uploadfile" size="50" accept="text/comma-separated-values" /> <input type="submit" name="hyosi" value="ファイル表示" /><br /> </form> htmlからファイルが選択して、php言語でそのファイルが*.csv拡張子で指定して、アップロードする。以下わたし作ったのサンプルで*.exeだとうまくいかなかった。初心者です。急ぎです。誰か助けてください。 if(isset($_POST['hyosi'])){ $file_dir = 'C:\apaches\Apache2\htdocs\practice\csvupload\csvfile\\'; $file_path = $file_dir.$_FILES['uploadfile']['name']; if(!is_uploaded_file($_FILES['uploadfile']['tmp_name'])){ print'*.csvhh拡張子のファイルを参照してください。'; exit; } elseif(strtoupper(substr(trim($_FILES['uploadfile']['name']),-4))!=".CSV"){ print'*.csv拡張子のファイルを参照してください。'; exit; } elseif(strtoupper(substr(trim($_FILES['uploadfile']['name']),-3))=="EXE"){ print'*.csvrrr拡張子のファイルを参照してください。'; exit; /* elseif(preg_match("/^.*\.(?!csv)$/",$_FILES['uploadfile']['name'])){ print'*.csv拡張子のファイルを参照してください。'; exit; */ } elseif($_FILES['uploadfile']['name'] == '' && $_FILES['uploadfile']['size'] == 0){ print'ngngng'; exit; } else{ if(move_uploaded_file($_FILES['uploadfile']['tmp_name'],$file_path)){ $csv_dir = "./csvfile/"; $csv_path = $csv_dir.$_FILES['uploadfile']['name']; $sfile = addslashes($csv_path); $_SESSION['file'] =$sfile; $file=fopen($sfile ,'r'); }else{ print '正常にアップロード処理されませんでした。'; exit; } } }

    • 締切済み
    • PHP
  • 違いがわかりませんorz

    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>アップロードされたか調べる</title> </head> <body> <p><?php if(isset($_FILES['example'])){ $localFilename=$_FILES['example']['name']; $uploadFile=$_FILES['example']['tmp_name']; if(is_uploaded_file($uploadFile)){ if (move_uploaded_file($_FILES["example"]["tmp_name"], "files/" . $_FILES["example"]["name"])) { chmod("files/" . $_FILES["example"]["name"], 0644); echo '<p>アップロードされたファイルです:'.h($localFilename).'</p>'; }else{ echo '<p>アップロードされていないファイルです:'.h($localFilename).'</p>'; } } function h($string){ return htmlspecialchars($string, ENT_QUOTES); } ?></p> <form method="post" action="" enctype="multipart/form-data"> <p>ファイルをしていしてください</p> <input type="file" name="example" value"" /> <input type="submit" value="送信する" /> </form> </body> </html> ----------------------------------------------------------------------------- ------------------------------------------------------------------------------ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>sample</title> </head> <body> <p><?php if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } ?></p> <form method="post" action="" enctype="multipart/form-data"> <p>ファイルをしていしてください</p> <input type="file" name="upfile" value"" /> <input type="submit" value="送信する" /> </form> </body> </html> -------------------------------------------------------------------------- ------------------------------------------------------------------------------- 上と下のプログラムの違いがわかりません。アップロードのプログラムなんですが下の方が成功し、上がエラーになります。よければ、解説つけて上のプログラムを正してください(><) お願いします。

    • ベストアンサー
    • PHP
  • php ファイルアップロード サイズ設定どうしたらいい??

    以下のphpファイルアップロードプログラムを書いたが、 ファイルサイズ5MBを超えるとアップロードできなくなることに困っています!! Upload_max_filesizeとかあるようですが、設定はわかりません。 まったくの新米ですので、教えてください。 Html部: <form action="upload.php" form method="post" enctype="multipart/form-data"> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="file" name="uploadfile[]" size="75"> </p> <p> <input type="submit" name="submit" value="- Upload -"> </p> </form> php部: <?php // 実行ボタンが押された時 if (isset($_POST["submit"])) { for ($i = 0; $i < 10; $i++) { $movetofile = "files/" . $_FILES["uploadfile"]["name"][$i]; move_uploaded_file( $_FILES["uploadfile"]["tmp_name"][$i], $movetofile ); } echo "Thank you very much for your uploading."; } ?>

    • ベストアンサー
    • PHP
  • アップロードしたファイルをメールで添付したいのですが教えてください

    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>ファイルのアップロード</title> </head> <body> <p><?php $fradrs = "from@xxxxxxx"; $toadrs = "to@xxxxxxxx"; $subject = "ファイルアップ\n"; $comment = "アライアンスから\n"; $comment .= "ファイルがアップされました\n"; if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } mb_language("ja"); $sdmail0 = $toadrs; $mlhed = "From: $fradrs\n"; $rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed); ?></p> </body> </html> ファイルは、アップされ、メールでのアップ通知をしていますが アップしたファイルを添付するには、どう書けば良いのでしょうか?

    • 締切済み
    • PHP
  • PHP ファイルupロードのセキュリティ

    ただいま ファイルUPロードするための簡単なPHPプログラムをせいさくしています 。 セキュリティの部分とか足らないところがるとは思うのですが、 下のプログラjムをどうやって改造すればいいのでしょうか? たとえば 容量を制限する。 ファイル種類を限定する等  おしえて頂きたいと思っています。 よろしくお願いたします。 <body> <p><?php if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } ?></p> </body> </html>

    • 締切済み
    • PHP
  • PHPでファイルのアップロード

    OSはLinuxのfedoraを利用しており、WebサーバーソフトはApacheを利用しています。 PHPを使って、クライアントからサーバーにファイルのアップロードをしたいのですが、プログラミングがあまり理解できておらず、アップロードができません。ちなみにphp.iniファイルの設定に関しては、アップロードは受け付けるようにしていますし、設定にミスはないと思います。 sample.phpというファイル名で下記のファイルを作ってみたのですが、アップロードすることができませんでした。まだPHPは初心者で間違いだらけだと思うのですが、こうすればアップロードできるようになるといった指摘をお願い致します。 <html> <head> <title> </title> </head> <body> <form enctype="multipart/form-data" action="sample.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> <?php if(isset($uploadfile) and is_uploaded_file($uploadfile)) { if(move_uploaded_file($uploadfile, $path . "/var/www/html/test/" . $uploadfile_name)){ print("<br>Uploaded file saved."); }else{ print("<br>Uploaded file save failed."); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでのファイルアップロード。リネーム機能実装

    インターネット上でフリーで配布されていたPHPスクリプトです。 <?php if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) { chmod("files/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできません。"; } } else { echo "ファイルが選択されていません。"; } ?> --- files フォルダにファイルをアップロードするのですが このままアップロードすると、同じファイル名でアップした場合ファイルが上書きされてしまいます。 アップロードした時、[お腹すいた.zip] だった場合、[20120808-1958-お腹すいた.zip]のように 時間と日付を入れたいのですが、私の知識では調べて試してみたのですが、白紙になる限りで うまくいきません。 どなたかご教授頂けませんでしょうか。

    • ベストアンサー
    • PHP
  • アップロードファイル名の文字化け

    いつもお世話になっております。 アップロードしたファイルから $_FILES['userfile']['name'];で、アップしたファイル名を取得しようとするときにファイル名に 特定(後半1バイトが'5C')の漢字を含むとPHPが、'\'と誤認して該当の文字から前を消して表示してきます。 例えば、「内部構造.txt」は、「造.txt」に化けます。move_uploaded_file関数で、アップしたファイルをどこかに保存しようにも、ファイル名が正しく指定できません。 どなたか、対策方法をご教授頂けませんでしょうか? よろしくお願いいたします。 <? mb_internal_encoding("EUC"); echo "userfile_name is ".$_FILES['userfile']['name']; echo "<br>"; echo "userfile_type is ".$_FILES['userfile']['type']; echo "<br>"; echo "MAX_FILE_SIZE is ".$_POST["MAX_FILE_SIZE"]; echo "<br>"; echo "userfile_tmp_name is ".$_FILES['userfile']['tmp_name']; echo "<br>"; echo "userfile_error is ".$_FILES['userfile']['error']; echo "<br>"; echo "userfile_size is ".$_FILES['userfile']['size']; echo "<br>"; $dir="c:/work/"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir.$_FILES['userfile']['name'])) { print "File is valid, and was successfully uploaded. "; } else print("UPLOAD ERROR!!"); ?>

    • ベストアンサー
    • PHP