1

深刻な問題があります。質問: java.awt.HeadlessException

問題は、1 か月前に同じコードを書き、Windows 7 と NetBeans 7.1 で問題なく動作したことです。相違点は、彼がコードをサーブレットに記述したことですが、Java ファイルに記述し、サーブレットからメソッドを呼び出していました。

BELIEVE ME IT'S 100% WORKS.

しかし、今は Windows 8 と NetBeans 7.3 を使用しています。変更されたのはこの 2 つだけです。現在は機能していないため、ヘッドレス例外が発生します。私に何ができる???
ファイルをアップロードする方法を教えてください。完全なディレクトリ パスが必要です。データベースに保存されます。
Register.jsp:

<a href="UploadUserImage">
  <input type="button" class="button round blue image-right ic-upload text-upper" value="Upload" name="upload"/>
</a>
<font style="font-family: Times New Roman; font-size: 16px; color: #2a2e36; font-style: italic;"><%= image %></font>
<input type="hidden" value="images/Member/<%= image %>" name="image"/>

UploadImage.java(サーブレット):

String image="images/"+new UploadFile().Upload();
request.getRequestDispatcher("Register.jsp?image="+image).forward(request, response);

UploadFile.java:

public class UploadFile
{
File file;
public String Upload()
{
    try 
    {

    final JFileChooser fc = new JFileChooser();
    String[] extensions={"jpg", "png", "gif"};
    FileNameExtensionFilter filter=new FileNameExtensionFilter("Images", extensions);
    fc.setFileFilter(filter);
    fc.setMultiSelectionEnabled(false);
    //fc.setCurrentDirectory(new File("C:\\tmp"));
    fc.setApproveButtonText("Upload");
    int retVal = fc.showOpenDialog(new JPanel());
    file=fc.getSelectedFile();
    String src,dst;
    src=file.getAbsolutePath();
    dst="C:\\Users\\SHUVAM KAYAL\\Documents\\NetBeansProjects\\BookShopManagment\\BookShopManagment-war\\web\\images\\Member\\"+file.getName();
    copy(new File(src), new File(dst));
    } 
    catch (IOException ex) 
    {}  
    catch(NullPointerException e)
    {}

    return file.getName();
}
public void copy(File sourceLocation , File targetLocation) throws IOException {
    if (sourceLocation.isDirectory()) {
        if (!targetLocation.exists()) {
            targetLocation.mkdir();
        }

        String[] children = sourceLocation.list();
        for (int i=0; i<children.length; i++) {
            copy(new File(sourceLocation, children[i]),
                    new File(targetLocation, children[i]));
        }
    } else {

        InputStream in = new FileInputStream(sourceLocation);
        OutputStream out = new FileOutputStream(targetLocation);

        // Copy the bits from instream to outstream
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
    }
}


}
4

1 に答える 1