phpのスクリプトをjavaに変換する方法

このQ&Aのポイント
  • jspで作成したアップローダー画面から取得した複数のファイルをサーバの任意のディレクトリに保存するjavaプログラムを作りたいです。
  • phpで書かれたサーバ側のソースは見つかり、実際にうまく動いたのですが、それをjavaでどのように実装すればいいのかわかりません。
  • ご存じの方いましたら教えて下さい。
回答を見る
  • ベストアンサー

phpのスクリプトをjavaに変換したい

お世話になってます。 jspで作成したアップローダー画面から取得した複数のファイルをサーバの任意のディレクトリに保存するjavaプログラムを作りたいです。 ググってみると、phpで書かれたサーバ側のソースは見つかり、実際にうまく動いたのですが、それをjavaでどのように実装すればいいのかわかりません。 ご存じの方いましたら教えて下さい。 実際のソース: <?php $ds = DIRECTORY_SEPARATOR; $storeFolder = 'uploads'; if(!empty($_FILES)){ $tempFile = $_FILES['file']['tmp_name']; $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; $targetFile = $targetPath. $_FILES['file']['name']; move_uploaded_file($tempFile,$targetFile); } ?>

noname#198479
noname#198479
  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
noname#247307
noname#247307
回答No.2

正直、PHPのこのソースコードをJavaに翻訳することを考えるより、一からJavaで書いたほうが早いと思いますが……。PHPはグローバル変数でアップロードしたファイルがまとめられてますので、保存がどうとかいう話でなくて、単にテンポラリファイルのファイル名を書き換えるだけです。Javaとはまるっきり話が違います。 とりあえず、Javaでやるなら、Jakarta Commonsについて調べてみるのがいいでしょう。下にJakarta Commonsを利用したアップロードファイルの保存処理の参考ページのURLをつけておきます。

参考URL:
http://www.javaroad.jp/servletjsp/sj_servlet12.htm
noname#198479
質問者

お礼

回答ありがとうございます。 知識不足で申し訳ないのですが、 もしかしたらphpでは可能でjava(サーブレット)では処理が複雑になるようなことが含まれてるのでは?と思ったので一応質問しました。 もしjavaでの実現が難しいようならjsp側の動きを変える必要があると思ったので。 具体的には画面から非同期で受け取ったデータをその都度サーバに格納したいのですがjavaだろうがphpだろうが環境変数を取得するだけの話なんですね。 ありがとうございました。

その他の回答 (1)

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.1

JavaとJavaScriptは別物ですけど、当然わかってますよね?

noname#198479
質問者

補足

回答ありがとうございます。 もちろんわかってます。

関連するQ&A

  • javaからphpへのファイルアップロードで困っています

    クライアントからサーバへファイルをアップロードするJAVAプログラムを作成しているのですが、アップロードの処理が分からず困ってます。 処理の流れとしては、 HTML(クライアント)でファイルを指定し、 PHP(サーバ)でクライアントから指定されたファイルの受信処理を行う。 このHTML(クライアント)の部分をJAVAで作成しようと考えています。 HttpURLConnectionで接続までは作成できましたが、JAVAでHTMLの <input type="file" name="upfile"> の部分をどのようにコーディングするのか分かりません。 //PHP受信処理↓ $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed"); print($_FILES['upfile']['error']); print("<b>失敗</b>"); } else { print("<b> $filename </b> uploaded"); print("<b>成功</b>"); どなたかご存知の方がいらっしゃいましたら御教授お願いします。

  • 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でファイルアップロードがうまくいきません

    PHP初心者なんで宜しくお願い致します。 ファイルアップロードのシステムを作っているんですが どうもうまくいきません。 <form action="<? $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> 写真:<input type="file" name="file" size="40" /> <input type="submit" name="new_write" value=" 登録 "> </form> <? if(isset($_POST['new_write'])){ $filename = $_FILES['file']['name']; $updir = "./image/".$filename; if(move_uploaded_file($_FILES['file']['tmp_name'], $updir)){ print "OK"; }else{ print "NG"; } } ?> 上記の記述をしています。 そしてphpinfo()で情報を確認しても file_uploadsはONになっています。 そしてPHPのバージョンは4.4.2です。 単純なことかもしれませんが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPとjavascriptの併用

    はじめまして。 javascriptと併用した質問になってしまうのですが、 <?php move_uploaded_file($_FILES["upload_file"]["tmp_name"], "files/" . $_FILES["upload_file"]["name"]); echo 'document.getElementById("mov").value="ほげ" '; ?> 以上のソース内で、「ほげ」の変わりにファイル名を入力したいのですが、アポストロフィなどの使い方が間違っているのかうまく入力できません。 $_FILES["upload_file"]["name"]がファイル名なのですが、どの用に記述すればよいでしょうか。

    • ベストアンサー
    • PHP
  • PHP初心者です。

    xamppを使用して勉強してます。 htmlでファイルをアップロードするソースを作り、phpで <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> <?php $file=$_FILES['my_img']; $filePath="./user_img/".$file['name']; move_uploaded_file($file['tmp_name'],$filePath); というコードを書いて実行したところ、 Warning: move_uploaded_file(./user_img/021.jpg): failed to open stream: No such file or directory in  このphpファイルの名前 on line 〇〇行目 Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php6207.tmp' to './user_img/021.jpg' in このphpファイルの名前 on line 〇〇行目 とエラーになってしまいました。 なぜでしょうか?

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

    初めて質問させていただきます。 PHPの勉強をはじめたばかりの初心者です。教本をもとに勉強を進めています。すべて教本どおりに設定し進めてきましたが、ファイルアップロードの箇所でどうしてもうまくいきません。いろいろ、php.iniを修正したり、PHPを修正したりしましたが本どおりの結果になりません。ご指導お願いします。 以下2種類のhtmlファイルとphpファイルを使用 (1)upform.htmlの内容 <HTML><BODY> <FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" ACTION="upload.php"> <INPUT TYPE="FILE" NAME="upfile"><br> <INPUT TYPE="SUBMIT" VALUE="アップロード"> </FORM> </BODY></HTML> (2)upload.phpの内容 <html><body> <?php if(move_uploaded_file ($_FILES['upfile']['tmp_name'], "./htdocs/phpbook/" ) == FALSE) { print "失敗しました。"; }else{ print ($_FILES['upfile']['name']); print "をアップロードしました。"; } ?> </BODY></HTML> 上記内容でhtmlファイルを呼び出し、abc.txt(デスクトップに保存している)をアップロードしようとすると、以下のエラーが返されます。 ↓↓エラー内容 Warning: move_uploaded_file(./htdocs/phpbook/) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\phpbook\upload.php on line 7 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\phpB.tmp' to './htdocs/phpbook/' in C:\Program Files\Apache Group\Apache2\htdocs\phpbook\upload.php on line 7 失敗しました。 ↑↑エラー内容 いろいろ思考錯誤し、upload.phpファイルの6行目"./htdocs/phpbook/"の箇所を、"abc.txt"としてみると、『アップロードしました』とアップロードに成功(?)し、abc.txtはC:\Program Files\Apache Group\Apache2\htdocs\phpbook内にアップロードされました。 教本では、"./htdocs/phpbook/"はファイルの保存先と注記されていますが、エラーになります。"abc.txt"に書き換えることでアップロードに成功しています。また、なぜ、アップロード先がC:\Program Files\Apache Group\Apache2\htdocs\phpbook内になるのかもわかりません。php.iniファイルの設定でしょうか。質問が長くなり、また、内容に足りない面もあるかもしれないですが、どうかよろしくお願いします。 【参考】 php.iniのFile Uploadsを抜きました。 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). upload_tmp_dir = ; Maximum allowed size for uploaded files. upload_max_filesize = 2M

    • ベストアンサー
    • PHP
  • 同じファイル内で、アップロードとアップロードされたファイルの処理をすることについて

    OS:Window XP Pro 開発環境:Xampp(Apache + PHP + Mysql) 現在ファイルをアップロードする処理を書いているのですが、 この処理を 1)a.phpでファイルをアップロードする処理 2)b.phpでアップロードされたファイルの処理 と分けて、コーディングするのではなく 1)a.php内にファイルをアップロードする処理とアップロードされたファイルの処理を一緒に記述する という風にできないかと思いましたので、 以下のようなコードを書いたのですが $_FILES['upload_file']['tmp_name']) の値を調べてみたところ、なんの値も 入っていなかったことから このコードでは、二つの処理を一つのファイル内に書くことが でいないようでした。 どうにかしてひとつのファイル内に この二つの処理を同居させることはできないのでしょうか? a.php --------------------------------------- switch($action) { case "update": if(is_uploaded_file($_FILES['upload_file']['tmp_name'])) { $upload_file = $_FILES['upload_file']['tmp_name']); if(file_exists(dirname(__FILE__)."/profile_phote/") == TRUE) { $phote_name = dirname(__FILE__)."/profile_phote/".$upload_file; } else { mkdir(dirname(__FILE__)."/profile_phote/"); $phote_name = dirname(__FILE__)."/profile_phote/".$upload_file; } move_uploaded_file($_FILES['upload_file']['tmp_name'],$phote_name); "リダイレクト処理・・・" case ... case ... default: <form name="profile" action="" method="post"> <input type="file" name="upfile"> <input type="hidden" name="action" value="update"> </form> }

    • ベストアンサー
    • PHP
  • phpでのファイルアップロード

    ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • 3日で作るPHPの本で画像アップロードするには?

    3日で作るPHPの本で画像アップロードするには? フォーム内 画像 <input type="file" name="image" size="40"><br> 下記内容でファイル内に保存する $upload_file = date("ymdHis")."_".basename($_FILES["image"]["name"]); $upload_path = "<保存先のディレクトリ名>".$upload_file; $upload_url = "./images/".$upload_file; move_uploaded_file($_FILES["image"]["tmp_name"],$upload_path); 以上のように表記してありましたが、 表示の仕方が書いていなくどのように表記したよいのかサンプルなどで教えていただきたいです。 さらに上記のように保存先のディレクトリ名書を絶対相対パスで書いてみたのですが保存されませんでした。 どこを変更するとよいでしょうか

    • 締切済み
    • 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

専門家に質問してみよう