-5

サーブレットを使用してサーバーに画像ファイルをアップロードしたいのですが、HTML5 を使用していません。スタックオーバーフローに画像をアップロードすることについて多くの質問を見てきましたが、ほとんどの回答は PHP を使用しています。FileReader.readAsDataURL()メソッドを使用してクライアント側で画像ファイルをjavaスクリプトで読み取り、これをサーバー側に送信して、BASE64で復号化して.jpgファイルを再度作成することで試しました。しかし、作成されたファイルはコンピュータで読み取ることができません。ですから、この問題を解決するのを手伝ってください。他のアップロード方法も歓迎します。JAVA JAVA JAVA についてお答えください。私もAJAXを使いたいです:)ありがとう。

サーブレットを使用して画像ファイルをアップロードしました。正常に動作しています。AJAX を使用して画像をアップロードしようとしています。AJAX リクエストを介して同じサーブレットを呼び出しています。しかし、うまくいきません。同じために common-fileupload.jar と common-io.jar を使用しています。スニペットは次のようになります: List items = new FileUpload(new DiskFileItemFactory()) .parseRequest(request);
このコードは Ajax では機能しません dataForm オブジェクトをデータとして送信しています。

data = new FormData();
jQuery.each($('#file')[0].files, function(i, file) {
data.append('file-'+i, file);
});

ajax リクエストは次のようになります。

$.ajax({
type : "POST",
data: data,
cache: false,
url : "/uploadImage/upload", 
contentType: false,    
processData: false,
success : function() {
alert("Done..!!");
}
});
4

1 に答える 1

0

1) 最初に HTML フォームを作成してマルチパーティ リクエストを送信します。ファイルをアップロードするための HTML フォームを作成するためのブロー リンクが表示されますhttp://www.caucho.com/resin-3.0/jsp/tutorial/multipart.xtp

2) Java 動的 Web プロジェクトを作成し、サーバーを追加します。このサンプルを見てください http://helloworldprograms.blogspot.com/2010/12/dynamic-web-project-eclipse.html

3) サーブレットを作成し、アップロードにこのコードを使用します。私は com.oreilly.servlet.MultipartRequest ライブラリを使用しています。

private void uploadImage(HttpServletResponse response,HttpServletRequest request) throws IOException
{
    String dirName = request.getSession().getServletContext().getRealPath("/temp/");
    String fileName = null;
    MultipartRequest multi=null;

    try{
        multi= new MultipartRequest(request, dirName,1024*1024, "ISO-8859-1");
    }catch (IOException ex){
        ex.printStackTrace();

    }
    try{     
        Enumeration files = multi.getFileNames();

        while (files.hasMoreElements()){
            String name = (String) files.nextElement();
            fileName = multi.getFilesystemName(name);
        }
        String filePath = dirName +  System.getProperty("file.separator") + fileName;
        File clientImage = new File(filePath);



    } catch (Exception ioe){
        ioe.printStackTrace();
        logger.info("\nFile does not exist or cant delete\n");
    }       
}
于 2012-11-29T07:15:29.503 に答える