ファイルアップロード時の文字化けについて

このQ&Aのポイント
  • ファイルアップロード時に日本語が含まれると文字化けする問題が発生しています。
  • enctypeをmultipart/form-dataのPOST通信でファイルアップロードする際、inputのtypeがfileだけでなくtextやhiddenなどのデータもリクエストを上げたいが、そのデータに日本語が含まれると文字化けする。
  • Servlet側ではsetCharacterEncodingでWindows-31Jを指定しており、getInputStreamを分解して取得しているが、なぜ文字化けするのか理由が分からず、対処方法を知りたい。
回答を見る
  • ベストアンサー

ファイルアップロード時の文字化けについて

ファイルアップロード時の文字化けについて いつもお世話になります。 tomcatでWEBアプリを作っています。 enctypeをmultipart/form-dataのPOST通信でファイルアップロードする際、inputのtypeがfileだけでなくtextやhiddenなどのデータもリクエストを上げたいのですが、そのデータに日本語があると文字化けしてしまいます。 Servlet側では、setCharacterEncodingでWindows-31Jを指定しており、getInputStreamを分解して取得するようにしています。いろいろ調べてみたのですがなぜこうなるのかが分かりません。なぜ文字化けしてしまうのでしょうか。どのように対処を行えばよいでしょうか。 ※開発環境 サーブレットコンテナ:tomcat OS:Windows eclipse3.5.2で開発してます。 宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数14

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

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

texyでもhiddenでも、その送信フォームのtypeはfileにすべきです。 それ以外は、HTMLのシンタクスにありません(使っても無効、システム側で正しく扱えない)。

関連するQ&A

  • ファイルのアップロードで文字化けします

    ファイルのアップロードを行うと特定文字以降の名前が消えてしまいます。 (予、表など2バイトコードに5Cが含まれる文字) コードは下のように書いています。 <form enctype="multipart/form-data" action="upload_fnc.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> サーバの動作環境はLinux(FedoraCore3)、Apache2.0.52、PHP4.3.10です。 クライアント側はほとんどがWindows(2000、XP)です。 どのようにして対処すればよいか分からなく困っています。 どなたかお分かりの方がいらしたら教えてください。 よろしくお願いいたします。

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

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

    • ベストアンサー
    • HTML
  • javaでアップロード時、SJIS文字化け判定

    javaサーブレット/jspで、ファイルのアップロード画面を 作っていますが、稀に文字化けしたファイルをアップして こられる場合があることが判り、文字化けをチェックして、 文字化けしたファイルがアップされないように修正したい と考えています。 ファイルはSJISのみと決めています。 文字化けのチェックは、どうようにやれば良いのでしょうか?

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

    はじめまして!!色々調べたのですが、原因が解らないので 質問させてください。 Strutsでファイルのアップロード機能を作っています。 容量の小さいファイルのアップロードは上手くいくのですが 500k前後のファイルをアップロードをしようとすると、 エラー画が表示されてしまいます。 検証の結果プログラムに到達する前にエラーが出ていること は解りましたが、原因が解りません。 jsp上でmethod="POST" enctype="multipart/form-data"で ファイルを送信しているのですが、ファイルのサイズによ って送信できないということはありえるのでしょうか? また、それを回避するにはどうすればいいのでしょうか? 拙い文章で解り辛くてすみません。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • ファイルアップロード

    私は、今、Javaで作成しているシステム上に画像アップロード機能を作成しています。 これは、アップロードする画像と同時に、テキストデータを送信したかったので、JavaCommonsのFileUploadを使用せずに、 http://homepage3.nifty.com/uzblend/servlet/#x71 こちらを参考に画像ファイルアップロードを作成しました。 ここで一つ困ったことが起きました。 ファイルをアップロードをして、ページを参照しても、すぐには画像が更新されず、サーバを再起動しないと更新されないです。 なんとか解決する方法はないでしょうか。 開発環境 WindowsXP J2SE 5.0 Tomcat5.0

    • ベストアンサー
    • Java
  • データを拾うときに文字化け?

    現在、Webアプリケーションを作っているのですが文字化けが起こってしまいます。 データを追加するときは問題なし データを更新するときに発生 となるのですが、前者と後者で同じデータでも文字化けします。(この2つには相違点は必要部分以外はありません。) 更新の時には現データをフォームに表示させていますが、それが問題でしょうか? 例 (JSP内) <input type="text" value="ゼロ" name="aaa" /> (Java内) String name = request.getParameter("aaa") System.out.println(name); でデータを変更せず(しても)JSPで送信ボタンを押すとコマンドプロンプトには意味不明の文字列が出てきます 尚、全てのデータを拾うクラス(サーブレット)には request.setCharacterEncoding("Shift_JIS"); JSPには <%@page contentType="text/html; charset=ISO-2022-JP" pageEncoding="Shift_JIS" %> をつけています。 開発環境 WindowsXP Home Edition MySQL 4.0.26 Apache Tomcat 4.1 この原因や解決方法が分かれば教えてください。

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

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

    • ベストアンサー
    • Java
  • jQueryの『plupload』でアップロードファイル名が文字化け

    jQueryの『plupload』でアップロードファイル名が文字化け ファイルのアップロードはサンプルで無事行えたのですが ファイル名が、日本語の場合文字化けしたファイル名になってしまうのですが サンプルデータを書き換える場所がわかりません。 どなたか対策のわかる方はいませんでしょうか? よろしくお願いします 例)「20100816_テスト.zip」→「20100816_繝・せ繝・zip」

    • ベストアンサー
    • PHP
  • サーブレットの文字化け

    こんにちは。 JAVAサーブレット時の文字化けで困っています。 環境 ≪サーバー≫ OS:Linux Tomcat4.1.31 JAVA1.4.2 ≪クライアント≫ OS:Windows2000 クライアントからhttp:192.168.X.X:8080/xxx.jspを呼び出して実行しています。 JSPファイル(Shift-JISで保存)からサーブレットを呼び出して サーブレットでrequest.getParameterをした時に、日本語が文字化けしてしまいます。 JSPファイルでは <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J"%> を指定しています。 なにかわかりましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Excelファイルアップロード時の文字化けについて

    以下の状況について、解決方法があればご教示いただければと存じます。 【状況】 日本語版のExcelでフランス語を他資料よりコピー&ペーストし、保存しました。 Excelファイルを開いた際には確実にフランス語が表示されております。 当ファイルをフランスのwebサイトにアップロードした際に、文字化けしてしまいました。 uicode-16では対応できないデータなのでutf-8にしたいのですが、秀丸エディタで変換しても文字化けという点は直りませんでした。 VBAを使った手段を除いて何か解決方法があればご教示いただければ幸甚です。 よろしくお願いいたします。

専門家に質問してみよう