- - PR -
ファイルのアップロード時のパラメータの引渡しについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-05-28 19:26
お世話になります。
http://www.atmarkit.co.jp/fjava/javatips/106jakarta018.html http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28275&forum=12&2 http://www.javadrive.jp/servlet/fileupload/index.html を参考にして、ファイルアップロード処理を行っています。 サーバ側のデータの受け取り、データの格納はうまくいきました。 ただし、アップロード処理に対し、その他の処理分岐を行いたいので 他のパラメータをhiddenにて、付加したいのですが、サーバ側でよみとれません。 <%@ page contentType="text/html;charset=Windows-31J" %> <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" enctype="multipart/form-data" action="UploadServlet?cmd=upload"> ファイルパス: <br> <input type="file" name="fl1" size="75" /><br> <input type="hidden" name="id" value="420012" > <input type="submit" value="アップロード" /> </form> </body> </html> ////////////////////////////////////////////// public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=Windows-31J"); String cmd = request.getParameter("cmd"); System.out.println(cmd); String id = request.getParameter("id"); System.out.println(id); /// http://www.javadrive.jp/servlet/fileupload/index.html // を参考 String path = getServletContext().getRealPath("file"); DiskFileUpload dfu = new DiskFileUpload(); dfu.setSizeMax(-1); dfu.setSizeThreshold(1024); dfu.setRepositoryPath(path); dfu.setHeaderEncoding("Windows-31J"); try { List list = dfu.parseRequest(request); Iterator iterator = list.iterator(); : : action="UploadServlet?cmd=upload" の指定によるパラメータ(cmd)は読み取れるのですが、 <input type="hidden" name="id" value="420012" > のパラメータが読み取れません。 よろしくお願いいたします。 |
|
投稿日時: 2006-05-28 19:55
マルチパート形式で送ったFormのパラメータは、request.getParameter()では取得できません。
DiskFileUpload から取得したFileItem の一個として扱われます。 FileItem#isFormField()で、ファイルなのか通常のパラメータなのか判断できます。 |
|
投稿日時: 2006-05-28 22:13
coasmさん、的確な回答、ありがとうございます。
無事、取り込むことができました。 /////////////// : try { List list = dfu.parseRequest(request); Iterator iterator = list.iterator(); while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); // アップロード用ファイル名指定の場合 if (!(item.isFormField())) { String fileName = item.getName(); if ((fileName != null) && (!fileName.equals(""))) { fileName = (new File(fileName)).getName(); item.write(new File(path + "/" + fileName)); } // アップロード用ファイル以外の場合 if (item.isFormField()) { String paraName=item.getFieldName(); String paraValue=item.getString(); System.out.println(paraName); System.out.println(paraValue); // hidden のデータの名前とデータを取り込む } } } /////////////// どうもありがとうございました。 |
1