dポイントプレゼントキャンペーン実施中!

いつもお世話になっています。
javaサーブレットupload時で質問します。
http://www.ne.jp/asahi/hishidama/home/tech/apach …
と、
http://www.javaroad.jp/servletjsp/sj_servlet12.htm
を参考にソースを作成してみたのですが、うまくurlを取得できません。
ソースは、
jsp側

<form method="POST" enctype="multipart/form-data"
action="./UploadServlet">
ファイルpath:
<input type="file" name="filefd" size=75"/>
<br>
ファイル名称:
<input type="text" name="fileName" value="">
<br>
<input type="submit" value="upload"/>
</form>

javaサーブレット(doGetは省く)

public class UploadServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (ServletFileUpload.isMultipartContent(request)) {
// ファクトリー生成
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1426);
factory.setRepository(new File("C:\\temp\\file_up")); //一時的に保存する際のディレクトリ

ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(20 * 1024);
upload.setFileSizeMax(10 * 1024);

List items = new ArrayList();
try {
items = upload.parseRequest(request);
} catch (org.apache.commons.fileupload.FileUploadException e) {
e.printStackTrace();
}

// 全フィールドに対するループ
for(int a=0;a<items.size();a++) {
FileItem item = (FileItem) items.get(a);
if (item.isFormField()) {
// type="file"以外のフィールド
processFormField(item);
} else {
// type="file"のフィールド
processUploadedFile(item);
}
}
}
}

private void processFormField(FileItem item) throws ServletException {

System.out.println(item.getFieldName());
try {
System.out.println(item.getString("MS932"));
} catch (UnsupportedEncodingException e) {
throw new ServletException(e);
}
}

private void processUploadedFile(FileItem item) throws ServletException {

System.out.println(item.getFieldName());
try {
System.out.println(item.getString("MS932"));
} catch (UnsupportedEncodingException e) {
throw new ServletException(e);
}
}
}

このとき、
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. C:\temp\file_up\upload__1fdbe80e_1279d42d9fc__8000_00000001.tmp (指定されたパスが見つかりません。)
Caused by: java.io.FileNotFoundException: C:\temp\file_up\upload__1fdbe80e_1279d42d9fc__8000_00000001.tmp (指定されたパスが見つかりません。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at org.apache.commons.io.output.DeferredFileOutputStream.thresholdReached(DeferredFileOutputStream.java:165)
at org.apache.commons.io.output.ThresholdingOutputStream.checkThreshold(ThresholdingOutputStream.java:221)
at org.apache.commons.io.output.ThresholdingOutputStream.write(ThresholdingOutputStream.java:127)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:101)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:362)
... 16 more
のエラーが発生します。
どこが悪いのでしょうか?

宜しくお願いします。

A 回答 (1件)

C:\temp\file_up


このフォルダは存在している?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勘違いしていました。
何とか、別の方法で解決できました。
本当にありがとうございました。
また、よろしくお願いします。

お礼日時:2010/04/10 17:02

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


このQ&Aを見た人がよく見るQ&A