「夫を成功」へ導く妻の秘訣 座談会

現在jsp、サーブレット、ビーンにて
画像ファイルやzipファイルなどをアップロードできるサイトを作成していまして、アップロードについては
jakartaのfileuploadで特定のフォルダにアップロードする処理は上手くいったのですが、
アップロードしたファイルを、別のフォルダにコピー&貼り付けさせるような処理を行いたいと思っています。

java.ioについて調べてみると
txtファイルの中身を読み込んだり書き込んだりする
処理しか見つける事ができず、つまずいております。

どなたかjpgやzip等を別フォルダへの
解説をしているサイトをご存知でしたら
教えていただけますでしょうか。
もしくはあのクラスを利用すれば出来る等でも
結構ですので、すみませんがご教授よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (1件)

InputStream,OutputStreamを使えばバイナリ処理(1バイト単位での読み書き)ができます。



そのままでは効率が悪いので、これにバッファーを付ける意味で、BufferedInputStreamなどを一緒に使います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
InputStream等を検索する事で解決できました。

ちなみにもし私のように別ファイルへの
コピーで困ったという方が現れた時の為に
参考になったアドレスをのせておきます
http://www.techscore.com/tech/J2SE/IO/2.html
ここのページを参考にしました

また私はeclipseを利用してtomcatのサーブレットの中にて
処理をしようと思っており
サーブレット.javaの中に


try {
FileInputStream input=new FileInputStream("C:\\○○○\\eclipse\\workspace\\○○\\file\\1.gif");

FileOutputStream output=new FileOutputStream("C:\\○○○\\eclipse\\workspace\\○○○\\file\\aa\\1.gif");

byte buf[]=new byte[256];
int len;
while((len=input.read(buf))!=-1){
output.write(buf,0,len);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
}

このようなコードでfile/1.gifのgifファイルを
fileフォルダの下の断層下にあるaaフォルダの中に
file/aa/1.gifとしてコピー&ペーストする事ができました。

これからBufferedInputStreamについても
実装させていこうと思います。
初歩的な質問にご回答頂きまして、
ngsvx様本当にありがとうございました。

お礼日時:2005/10/31 12:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qブラウザからファイルパスを取得するには

現在Webブラウザからローカルにあるファイルのパスを取得したいと
考えています。

イメージとしては、アップロードのときのように、参照ボタンを押すと
ダイアログが開き、そこからファイルを選択すればそのファイルのパスが
取得できるようなことを考えています。
ファイルアップロード時にファイルのパスを取得できることは知っているのですが、アップロード出来るサイズの制限を越えるものもあり、
できるだけアップロード処理を行わずに、ファイルのパスだけを取得できる
方法がないか探しております。

ご存知の方がいらっしゃいましたら、教えていただければ幸いです。

よろしくお願いいたします。

Aベストアンサー

単純に
enctype="multipart/form-data"
を指定しなければ
enctype="application/x-www-form-urlencoded"デフォルトが適用されるので、
<input type="file" name="filePath">
とでもしたら良かったと思います。
 たとえば、ローカルにある画像を使ってカレンダーを印刷するCGIを作成したときは、そのようにしたと記憶してます。

Qwebアプリケーションでの画像ファイルの保存場所

お世話になります。

Javaと、MySQLでウェブアプリケーションを作成していまして、ユーザーがアップロードしたファイルを
どこのディレクトリに保存すればいいか悩んでいますので、教えてください。

ユーザーがログインし、自分のアイコンを設定した場合、
その画像ファイル(jpgなど)はどのフォルダに置いておけばいいのでしょうか?

例えば、imgフォルダにおいた場合、バージョンアップしたプログラムをデプロイすると、
サーバー内のimgフォルダ内のデータはなくなってしまうと思いますので、ユーザーがアップした画像などは
そこに置いてはいけないと思います(バージョン・アップ時に消えてしまいますので)。

「デプロイしても消されない場所に置けばいい」ということでしょうか?

皆さんはどうされていますでしょうか?

よろしくお願い致します。。

Aベストアンサー

こんにちは。

検索すればいろんなサンプルが出てくると思いますよ。

すごく簡単に書くとしたら

// 画像ファイルのパス
File file = new File ( "/home/・・・・" );
response.setHeader ( "Content-Type", "image/jpeg" );
response.setContentLength ( (int)file.length() );
// 出力と入力
ServletOutputStream out = response.getOutputStream();
BufferedInputStream in = new BufferedInputStream ( new FileInputStream(file) );

int data = 0;

while ( (data = in.read()) != -1 ) {
// 書き出す
out.write(data);
}
in.close();
out.close();

これをサーブレットなりで呼び出してあげれば、任意の場所の画像ファイルを出力します。
(実際の運用ではパラメータでID等を渡してDBからファイル名を取得する)

これを応用すると、必ずサーブレットなりを介さないとファイルには直接アクセスできないため、
認証をさせたり、ダウンロード数を把握したり、期限を設定したりいろいろ出来るようになります。

こんにちは。

検索すればいろんなサンプルが出てくると思いますよ。

すごく簡単に書くとしたら

// 画像ファイルのパス
File file = new File ( "/home/・・・・" );
response.setHeader ( "Content-Type", "image/jpeg" );
response.setContentLength ( (int)file.length() );
// 出力と入力
ServletOutputStream out = response.getOutputStream();
BufferedInputStream in = new BufferedInputStream ( new FileInputStream(file) );

int data = 0;

while ( (data = in.read()) != -1 ) {
// 書き出す
out....続きを読む

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

QJSPでの画像ファイル表示

<img src="~.gif">とすれば、決められた画像は表示できるのですが、"~.gif"の部分に変数を使用して、場合に応じて、ファイル名(数字)が違う画像ファイルを読み込ませたいのです。
その場合当然なのですが、<img src="~" + <% 変数 %> + ".gif">としても、できないんですよね。

何か方法をご存知の方教えてください。よろしくお願いします。

Aベストアンサー

<img src="~ <%= 変数 %>.gif">
じゃないですか?

Qhtmlのfileタグに自動で値を入れる方法

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉の策になっています…。

とりあえず(だめだとは思っていたのですが)
<input type="file" value="ファイルパス" name="filepath">
と直書きにしてみたり
document.all.filepath.value = "ファイルパス";
などとしてみたりしましたがだめでした…。
W3C勧告の使用上はvalueでファイルパスを指定できるようになっているようなのですが、現在の一般的なブラウザでは禁止されているようですね。

このような場合、何らかの方法でfileにファイルパスを自動入力することはできますでしょうか?
もしできない場合、何らかの方法で実現する方法はありますでしょうか?よろしくお願いします。

ちなみに実現できればいい環境は
WinXP環境のIE6です。言語はクライアント言語はJavaScriptのみで、という条件付です。
できないかもしれないのですが、こういうのって必要になるときもあるよなーなどと思っており、もしかしたら解決方法があるかもしれないと思い質問しました。よろしくお願いします。

htmlのタグでいって
<input type="file">を用いてファイルをサーバーにアップロードしたいと思っています。で、このとき、ファイル名は任意に選べるのではなく固定で送信したいと思っています。

すなわち、HTMLを読み込んだ時点で、fileのテキストボックスにファイルパスが埋め込まれているか、JavaScriptで、ファイルパスを自動入力するようにしたいと思っています。

最終的には、form内のオブジェクトをすべて非表示にし、onload時にsubmitするような形にしたいと思っています。いろいろ事情があって苦肉...続きを読む

Aベストアンサー

やっぱ無理じゃないでしょうか。
なにか裏ワザ的な方法で一時的にできたとしても、いつか直されるかもしれないのでおいそれとは使えないし。

>W3C勧告の使用上はvalueでファイルパスを指定できるようになっている
→参考URL 「ユーザが明示的に送信を求めたファイル以外のものは送ってはいけない」とあります。

参考URL:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/appendix/notes.html#forms-security

Qjspでファイルの読み込み

jspでwebサーバーにある“1.txt”ファイルを読み込んでそれを表示するプログラムを作成したのですが、エラーが出てしまいます。サーバーの環境(jsp実行環境等)は問題ありません。以下のコードで何かおかしなところがありましたら教えてください。


<%@ page contentType="text/html"
import="java.util.*,java.io.*"
%>
<%
String result = "";
String h_s = "";
FileReader h_fr = new FileReader("1.txt");
BufferedReader h_br = new BufferedReader(h_fr);
while(true){
h_s = h_br.readLine();
if (h_s == null){
break;
}
result = result + h_s;
}
%>

<%= result %>

jspでwebサーバーにある“1.txt”ファイルを読み込んでそれを表示するプログラムを作成したのですが、エラーが出てしまいます。サーバーの環境(jsp実行環境等)は問題ありません。以下のコードで何かおかしなところがありましたら教えてください。


<%@ page contentType="text/html"
import="java.util.*,java.io.*"
%>
<%
String result = "";
String h_s = "";
FileReader h_fr = new FileReader("1.txt");
BufferedReader h_br = new BufferedReader(h_fr);
while(true){
h_...続きを読む

Aベストアンサー

> FileReader h_fr = new FileReader("1.txt");
ここのところですが、JSPのスクリプトレット内からの
相対パスは、*.jspファイルからのパスではなく、
JSPがServletに変換されてclassファイルとして
classesディレクトリなどに配備された位置からの
パスになるはずです。

Qチェックボックスの値を取り出したい

こんにちは JavaScript初心者です。
過去ログを見ながらここまでやったのですが、何も表示されません。
?マークの所で引っかかっていると思うのですがどなたかご教授願います。
やりたい事は、チェックボックスのチェックの入った所の値を取り出して表示したいのですが...
3つチェックされていてOKをクリックした時に、ABC と出てくるのが理想です。
<html>
<SCRIPT LANGUAGE="JavaScript">
<!--
function chkform() {
for(i=1; i<=3; i++) {

chkdata(i) = document.form0.chk(i).Value    ?
var aa = chkdata(i)

document.write(aa)
}
}
//--></SCRIPT>

<FORM onSubmit="return chkform(this)" name = "form0">

<INPUT type="checkbox" name="chk" value="A" >
<INPUT type="checkbox" name="chk" value="B" >
<INPUT type="checkbox" name="chk" value="C" >

<INPUT type="submit" value="OK" >
</form>

</html>

こんにちは JavaScript初心者です。
過去ログを見ながらここまでやったのですが、何も表示されません。
?マークの所で引っかかっていると思うのですがどなたかご教授願います。
やりたい事は、チェックボックスのチェックの入った所の値を取り出して表示したいのですが...
3つチェックされていてOKをクリックした時に、ABC と出てくるのが理想です。
<html>
<SCRIPT LANGUAGE="JavaScript">
<!--
function chkform() {
for(i=1; i<=3; i++) {

chkdata(i) = document.form0.chk(i).Value   ...続きを読む

Aベストアンサー

これでは全然ダメです。
もう少し本なり見て勉強しましょう。

function chkform() {

var chkdata = new Array();
var aa = "";
var len = document.form0.chk.length;

for(i=0; i<len; i++) {
if ( document.form0.chk[i].checked ) {
chkdata[i] = document.form0.chk[i].value;
aa += chkdata[i];
}
}
document.write(aa);
}

やるなら、こんな感じで良いのでは?
#私的にはこんなのでも嫌ですが。。。

各行で何をやってるか理解した上でご使用ください。m(__)m

QサーブレットからパラメータをPOST形式で送信するには。

現在JavaでWEBアプリケーションを開発しています。

技術的な事で、皆様にご質問がございます。

サーブレットから、他のWEBアプリケーションのサイトへ
POST形式でパラメータを送信するには、どうすれば
良いのでしょうか?
GET形式で送信するなら、
response.sendRedirect("http:aaa.com?key1=aaa&key2=bbb")
ってな具合で、URLの後ろに送信したいパラメータを
つければ、GET形式で送信できますが、
POST形式で送る事はできないのでしょうか?

どなたか、ご存知の方がおられましたら、
ご教授よろしくお願い致します。

Aベストアンサー

いんちき方法になってしまいますが、
HTMLもしくはJSPを作ってしまって
スクリプトかなにかで自動で画面遷移するというのはだめでしょうか?
この場合渡したいパラメータはhiddenで持たせたりすればよいとおもいますが。

Qのイベントについて

<input type="file">でファイルを選択した時点にイベントを追加する方法を教えてもらえませんか?
セキュリティの観点から無理なのでしょうか?

Aベストアンサー

ファイルを選択した時点で、
onchange イベントが起こりますので、
それを利用すればいいです。
例:
<form name="File">
<input type="file" name="UPLOADFILE" onchange="alert(document.File.UPLOADFILE.value)">
</form>

Qホームページでファイルをダウンロードさせる

お世話になります。
会社のホームページを制作中です。
マニュアルなどをアップしておき、ユーザーにダウンロードしてもらうページを作ろうと思っています。
<ベクターのような>
参考になる情報ありましたら教えてください。
宜しくお願いいたします。

Aベストアンサー

ダウンロードについて、
参考URLのページに分かりやすく書いてあるようです。
例もあるのでぜひ参考にしてください。

参考URL:http://www.tohoho-web.com/wwwxx013.htm


人気Q&Aランキング