• 締切済み

テキストファイルのアップロードについて

HTMLよりアップロード対象のテキストファイル(csv)パスが指定された場合、送られてくるcontent-typeがoctet-streamとなりますが正しいのでしょうか?何だかバイナリデータ扱いとなってしまい格納データがバイトコードになってしまいます・・・。multipart/form-dataでPOSTしているだけなのですが・・・

  • sting
  • お礼率12% (35/274)
  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

Jakarta CommonsのFileUploadライブラリなどは使用されているのでしょうか。使用していないのならば、リクエストで送られてくるデータからファイル名やファイルの実体を取得するコーディングが必要となると思います。

参考URL:
http://www.atmarkit.co.jp/fjava/javatips/106jakarta018.html

関連するQ&A

  • contenttypeについて

    ブラウザにてmultipart/form-dataを使用してファイルアップロード処理をサーバ側で行っているのですが、csvファイル(拡張子csv)はcontenttypeがapplication/octet-streamとなります。 これをtext/plainとしたい場合どうすればよいのでしょうか?そもそも何を持ってcontenttypeって判定されているのでしょうか? ※もちろん、対象ファイルの拡張子をtxtに変えればtext/plainにはなりますが・・・

    • ベストアンサー
    • HTML
  • ReadParseを使ってのバイナリファイルのアップロード

    ファイルをアップロードするCGIを作ろうと思い、以下のように書いてみました。そうしたところテキストファイルのアップロードには成功しましたが、バイナリファイルだとアップロード出来ても開けなかったり、画像が崩れてしまったりしてしまいました。 何故バイナリファイルだとアップロードが失敗してしまうのかわかりません。どこを直せば良いのでしょうか。 よろしくお願いします。 ----------------------------------------------- フォーム <FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="xxx.pl"> <INPUT TYPE="file" NAME="file"> <INPUT TYPE="submit" VALUE="アップロード"> </FORM> ------------------------------------------------ xxx.pl &ReadParse(*in, *f_name, *f_type); $f_name{'file'}=~/([^\\\/]+)$/; $filename = $1; open(IN, ">$filename"); print IN $in{'file'}; close(IN);

    • ベストアンサー
    • CGI
  • formでファイルアップロードとテキストデータを送信したい

    JSPとServletでプログラムを作っております。 フォームで次のことをしたいと思っております。 1、DBにファイルをアップロードする。 2、DBにテキストデータを登録する。 この場合、 <form enctype = "multipart/form-data"> <form enctype = "text/plain"> を別個に指定できるのでしょうか? 出来ないとしたらどういう解決方法があるのでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • PHPからファイルアップロードの実現

    ブラウザからファイルをアップロードするように、PHP内で同じことを実現させたいと考えています。 fsockopenを使用してGETやPOSTをすることは実現できていますが、ファイルのアップロードとなると少々勝手が違い、うまいことできません。 現状では下記のようなものを送信させているのですが、受け取り側のPHPで認識できません。 POST /upload.php HTTP/1.0 host: 127.0.0.1 Content-Type: multipart/form-data; boundary=---test Connection: close Content-Length: 120 ---test Content-Disposition: form-data; name="test"; filename="test.txt" Content-Type: text/plain testtest ---test 現状、テスト用に upload.php というので受け取っているのですが、$_FILES 変数は空の状態です。 基本的なところを理解していないので、根本的に間違っていたり、足りないところがあるような気がするのですが…。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストファイルのアップロードについての質問です

    現在テキストファイルのアップローダーのページを表示し、アップロードされたテキストファイルの文章を表示するプログラムを作っております。 プログラムは以下です。 //省略 <form method="post" enctype="multipart/form-data" action="testup.php"> <input type="file" name="data" size="30"> <input type="submit" value="upload"> </form> <?php $updir = "./up/"; $filename = $_FILES['data']['name']; if(file_exists($_FILES['data']['tmp_name'])){ $filesize = filesize($_FILES['data']['tmp_name']); if($filesize <= 700000){ if(ereg("(^[a-zA-Z0-9_-]+)\.(txt)",$filename)){ move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename); echo "File : " . $filename . " Upload Suceeded!!"; echo $_FILES['data']['error']; echo "<br><br>"; include("./$updir/$filename"); } else { } }else { echo "$filesize Byte too large size。<br>File must be less than 700000 Byte"; } } if ($handle = opendir($updir)) { while (false !== ($file = readdir($handle))) { if ($file != "." and $file != "..") { include("./$updir/$file"); } } closedir($handle); //以下省略 このプログラムを実行すると問題なく動くのですが、今回お聞きしたいのは、アップロードされた文章をこのページだけでなくほかのページにも表示させるにはどうすればいいのかということです。 例えば <form method="post" enctype="multipart/form-data" action="testup.php">の[action = " "]のところに表示したいページのアドレスを入れればいいのかと思ったのですが、そうすると、テキストファイルの内容だけでなく、アップロード完了後のUpload Suceeded!!";まで表示されてしまうのであまり好ましくないと思います。また if ($handle = opendir($updir)) { からclosedir($handle);の部分を別に保存して include(-----);としたのですが、 Warning: include(.//ete.txt) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\inc2.php on line 8 Warning: include() [function.include]: Failed opening './/ete.txt' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\inc2.php on line 8 というようなエラーメッセージが出てしまいました。 長い文章になってしまいましたが、今まで書いてきたとおり、アップロードされたファイルを別のページでも表示させるにはどうすればいいのでしょうか?お分かりになる方がいらっしゃいましたら教えていただけないでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • enctype="multipart/form-data"

    アップローダーのHTMLで、FORMのタグに enctype="multipart/form-data"が必要なのはバイナリファイルをアップロードする時だけですか?

    • ベストアンサー
    • HTML
  • ファイルのアップロードについて

    multipart/form-dataの記述は入れると アップロードと同じタイミングで classファイルに渡したいデータ(SQL)が エンコードが変換されているせいか渡せなくなって しまいました。 この場合は何か対処する方法はありますでしょうか? javaではgetParamerterで文字列を取得していまして multipart/form-dataの記述を外すときちんと 取得できます。 宜しくお願いします。

    • ベストアンサー
    • Java
  • ファイルをアップロードするとファイルの中に・・・

    今、JAVAservletでファイルをアップロードするプログラムを作成しています。 であるサイトを参考に実装することには成功したのですが、予期せぬことに リクエスト内にある取り出す必要のない情報もいっしょにファイルに書き込まれて しまいます。FORMのボタンの情報が一番最後についてくるのです。 content-Type: multipart/form-data; boundary= ---------------------------10265533117308 -----------------------------10265533117308 content-disposition: form-data; name="submitter" username -----------------------------10265533117308 content-disposition: form-data; name="Uploaded file"; filename="abc" [... contents ...]  ← ココのみを取り出したい -----------------------------10265533117308 が、この場所にあるFORMボタンの名前などの情報も引っ付いてしまっている。 ------------------------------------------ どうやら、boundary 文字列 で区切られているという事は 調べたのですが、かといって「boundary」がなんなのかさっぱり わからず、切り離すにもどうしたらいいのかわからない状態なのです。  何か良い知恵を貸してください。 また、そういったことを詳しく乗せているサイトの情報などもお願いします。

    • ベストアンサー
    • Java
  • バイナリファイルのアップロードに関して

    今回質問させて頂くことに関連した問題を、現在MySQLのカテゴリで質問させていただいているのですが、 バイナリファイルをアップロードし、そのファイルのバイナリデータを変数($img)に格納し、それをDBに格納するという形を目指しています。しかし、DBにどうしても格納できません。もしやバイナリデータを変数に格納する時点で、既におかしいのかと思いまして、その部分についてこちらでご教授頂きたく書き込ませていただきました。 #!C:\Perl use CGI; use DBI; $PCMOJPATH='C:\パス名'; #ディレクトリ指定 my ($buffer); my $query = new CGI; $uniqid = time . "_" . $$; $newfile = "upload_$uniqid"; #ファイル名 print "Content-type: text/html\n\n"; print "<html><body>\n"; my $fH = $query->upload('filename'); my $mimetype = $query->uploadInfo($fH)->{'Content-Type'}; open (OUT, ">$PCMOJPATH/$newfile"); binmode (OUT); while(read($fH, $buffer, 1024)){ print OUT $buffer; $img .= $buffer;   #バイナリデータを$imgに格納 } close (OUT); close ($fH) if ($CGI::OS ne 'UNIX'); chmod (0666, "$PCMOJPATH/$newfile"); ------------------------- と書いているのですが、$imgにはバイナリデータがちゃんと入っていないのでしょうか?間違っているところがあれば、どのように直したらいいか教えてください。どうぞよろしくお願いします。

  • ファイルのアップロードができません。

    Perl CGIモジュールを使ってファイルのアップロードをしたいのですが、うまくいきません。 以下HTML部分 =================================================================== <form action="test.cgi" enctype="multipart/form-data" method=post> 1つめのファイルを選択<input type="file" name="upimg1" size=40><br> <input type=submit value=アップロード></form> ==================================================================== 受け取るCGI ==================================================================== #!/usr/bin/perl use CGI qw(:standard); $upimg1 = param('upimg1'); open UP,"> ./img_dir/sample.jpg"; while(<$upimg1>){ print UP $_; } close UP print <<"EOL"; Content-type: text/html <html> <body> Files have been uploaded.<br> $file1<br> $file2<br> </body> </html> EOL exit; ===================================================================== 実際アップフォルダ内にはsample.jpgがあるのですが、0バイトできちんとアップされていません。 本をみて自分なりにやってみたのですが・・・ どこがまちがっていますか?よろしくお願いします。

    • ベストアンサー
    • CGI